알고리즘/이것이 취업을 위한 코딩테스트다
#1929: 소수 구하기
bright_code
2020. 10. 10. 20:38
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
반응형