1. quiz

  • 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.

2. answer

def solution(n):
    num = []
    count = 0
    for i in range(2,n+1):
        for j in range(1,i+1):
            if i % j == 0 :
                num.append(i)
        if num.count(i) >=3:
            count += 1
    return count
  • 지금까지 나온 문제중 가장 헷갈렸던 문제!!!!

3. 다른 사람의 풀이

def solution(n):
    output = 0
    for i in range(4, n + 1):
        for j in range(2, int(i ** 0.5) + 1):
            if i % j == 0:
                output += 1
                break
    return output
def get_divisors(n):
    return list(filter(lambda v: n % v ==0, range(1, n+1)))

def solution(n):
    return len(list(filter(lambda v: len(get_divisors(v)) >= 3, range(1, n+1))))
profile
To be a changer who can overturn world

0개의 댓글