핀아의 저장소 ( •̀ ω •́ )✧
[Programmers] Lv.0 합성수 찾기 본문
📖 문제
✏️ 내가 만든 코드
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)로 사용해도 괜찮다.
'Computer Science > 코딩테스트_Python' 카테고리의 다른 글
[Programmers] Lv.0 안전지대 (0) | 2023.04.21 |
---|---|
[Programmers] Lv.0 최댓값 만들기 (2) (0) | 2023.04.20 |
[Programmers] Lv.0 공 던지기 (0) | 2023.04.20 |
[Programmers] Lv.0 각도기 (0) | 2023.04.18 |
[Programmers] Lv.0 짝수 홀수 개수 (0) | 2023.04.18 |
Comments