728x90
반응형
import math
m, n = map(int,input().split()) # m ~ n 사이 소수 구하기
prime = [ True for i in range(1000001)]
prime[1] = False # 1 은 소수가 아님
for i in range(2, int(math.sqrt(n))+1):
if prime[i] == True:
j = 2
while i*j <= n :
prime[i*j] = False
j += 1
for i in range(m,n+1):
if prime[i] :
print( i)
약수는 대칭적인 구조로 이루어져 있으므로, n 의 제곱근 까지만 구하면 된다.
ex ) 8 ( 제곱근 : 약 2.9 )
1*8 = 2*4 = 4*2 = 8*1
에라토스테네스의 체 알고리즘을 이용하여 n 까지의 모든 소수를 구하고나서,
m~ n 까지 출력하면 간단하게 구현 가능하다.
728x90
반응형
'알고리즘 > 이것이 취업을 위한 코딩테스트다' 카테고리의 다른 글
# 1759: 암호 만들기 (0) | 2020.10.10 |
---|---|
3. DFS/BFS - 미로 탈출 (0) | 2020.09.20 |
3. DFS/BFS - 음료수 얼려 먹기 (0) | 2020.09.20 |
08-4. 바닥공사 (0) | 2020.09.10 |
08-3. 개미전사 (0) | 2020.09.10 |