Developer/Programmers

[Programmers] LV 0. 합성수 찾기 (Python/파이썬)

moolife 2023. 3. 23.

▶ 문제 설명

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


 제한 사항

  • 1 ≤ n ≤ 100

 입출력 예

n result
10 5
15 8

입출력 예 설명

입출력 예 #1

10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다.

 

입출력 예 #2

15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다.


▶ Code

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

▶ Point

이중 for 문을 활용하여, i를 j로 나눈 나머지가 0일 경우에 num에 i를 추가하고, num의 갯수가 3 이상일 경우에 count에 1을 추가한다.

 

 

댓글