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

+ Recent posts