develop/Python
[프로그래머스/파이썬] 합성수 찾기
hsleeee
2023. 3. 23. 17:39
반응형
SMALL
def solution(n):
answer = 0
for i in range(1, n+1):
cnt = 0
for j in range(1, i+1):
if i % j == 0:
cnt += 1
if cnt >= 3:
answer += 1
return answer
합성수란? 약수의 개수가 3개 이상인 수
자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 반환하는 문제이다.
1부터 n+1까지의 for문을 실행하고
for문 안에 cnt를 선언한다, cnt에는 약수인 수들의 카운트를 저장한다.
이중 for문을 정말 싫어하지만,, 이번엔 어쩔 수 없이..
for문을 하나 더 만들고 1부터 i+1까지의 반복문을 실행한다.
i % j == 0 인 경우 j는 i의 약수가 된다. 약수일 경우 cnt의 카운트를 늘려준다.
j for문이 끝난 후 약수의 개수가 3 이상이라면 answer의 카운트를 늘려주어 답을 구한다.
반응형
LIST