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))))