- 0
- 이니스프리
- 조회 수 488
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def era(n): sv = [ 0 ] * (n + 1 ) for i in range ( 2 , n + 1 ): for j in range ( 2 * i, n + 1 , i): sv[j] = 1 res = [] for x in range ( 2 , n + 1 ): if sv[x] = = 0 : res.append(x) return res def solution(a, b): ss = era(b) cnt = 0 for i in ss: n2 = i * * 2 n3 = i * * 3 if a< = n2< = b: cnt + = 1 if a< = n3< = b: cnt + = 1 return cnt |
해설파일이 누락되어 있더군요.
첫 번째 함수는 n 이하의 소수를 리스트로 반환하고, 두 번째 함수는 a~b 사이의 소수^2 또는 소수^3인 수의 개수를 반환합니다.
보다 더 간결하고 정교한 풀이가 가능하겠지만, 제 개인적으로 이해하기 편한 방식대로 풀었습니다 ^^
작성자
댓글 0
권한이 없습니다.