핀아의 저장소 ( •̀ ω •́ )✧

[Programmers] Lv.0 합성수 찾기 본문

Computer Science/코딩테스트_Python

[Programmers] Lv.0 합성수 찾기

_핀아_ 2023. 4. 20. 15:42

📖 문제

 

✏️ 내가 만든 코드

import math 

def solution(n):
    answer = 0
    for i in range(4, n+1):
        for j in range(2, int(math.sqrt(i)) + 1):
            if i % j == 0:
                answer += 1
                break
    
    return answer
  • 첫번째 range에서 4부터 시작한 이유는 그 전 숫자들은 어차피 다 소수이기 때문
  • 두번째 range에서 제곱근까지 구한 이유는 가운데 약수를 기준으로 대칭적인 형태이기 때문에, 제곱근까지만 (가운데 약수까지만) 확인하면 되기 때문
  • math 대신에 int(i ** 0.5)로 사용해도 괜찮다.
Comments