코드
def solution(n):
answer = 0
for i in range(n+1):
c = 0
for j in range(1, i+1):
if i % j == 0:
c += 1
if c >= 3:
answer += 1
return answer
n 이하의 합성수 개수를 구하는 문제이다.
합성수는 약수의 개수가 3개 이상인 수를 말한다.
따라서 약수의 개수가 몇 개 인지 판별하면 합성수를 찾을 수 있다.
n 이하의 수에서 합성수를 찾아야 하므로 첫 번째 for문은 n+1까지로 선언해 준다.
c는 약수의 개수를 찾기 위한 변수이다. 약수는 자기 자신보다 작거나 같은 수이므로 1부터 i+1까지로 두 번째 for문을 선언한다.
만약 i가 j로 나누어지면 j는 i의 약수이므로 c+1을 해주고 c가 3보다 크거나 같으면(= 약수의 개수가 3개 이상) answer +1을 해 합성수의 개수를 구한다.
반응형