🐍python3/Programmers

프로그래머스[코딩테스트 입문]_합성수 찾기

박필중 2023. 6. 3. 13:28
728x90

📃문제설명

약수의 개수가 세 개 이상인 수를 합성수라고 합니다.

자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.

 

📝제한사항

  • 1 ≤ n ≤ 100

 

🪧입출력 예

n result
10 5
15 8

입출력 예 #1

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

입출력 예 #1

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

 

💻코드

def solution(n):
    composite_numbers = [num for num in range(4, n+1) if any(num % i == 0 for i in range(2, int(num**0.5) + 1))]
    return len(composite_numbers)

 

더보기

🧑‍💻공부

any 함수는 iterable의 각 요소를 순회하면서, 요소가 true로 평가되는지 확인한다.

만약 하나 이상의 요소가 true로 평가되면 any 함수는 true를 반환하고,

모든 요소가 false로 평가되면 false를 반환한다.

numbers = [0, 1, 2, 3, 4]
result = any(numbers)
print(result)

728x90