- 0
- 이니스프리
- 조회 수 348
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
권한이 없습니다.