이것저것 공부 기록하기

[Algorithm] 1일1솔 - 백준 1929 소수구하기 (python3) 본문

Algorithm/Baekjoon

[Algorithm] 1일1솔 - 백준 1929 소수구하기 (python3)

얍욥얍 2021. 12. 29. 00:16

문제링크

https://www.acmicpc.net/problem/1929

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

 

문제풀이

에라토스테네스의 체 기반으로 풀었다. m, n이 1부터 입력될 수 있기 때문에 sieve의 0, 1을 False로 초기값을 설정해야 한다.

m, n = map(int, input().split())
x = int(n**0.5)
sieve = [False,False] + [True] * (n-1)
for i in range(2, x+1):
    if sieve[i] == True:
        for j in range(2*i, n+1, i):
            sieve[j] = False

print(*[i for i in range(m,n+1) if sieve[i] == True], sep='\n')

 

반응형
Comments