일하는/Algorithm, Coding

[BAE/<JOON>][백준][#1929] 소수 구하기

김논리 2019. 9. 19. 15:28

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

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000)

www.acmicpc.net

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000)

출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

 

예제 입력 예제 출력
3 16 3
5
7
11
13

 


 

그냥 범위내 소수를 다 구해버리자 ^^

Python3

M, N = map(int, input().split())
r = [False, False] + [True] * (N - 1)
for i in range(2, int(N ** 0.5) + 1):
    if r[i]: r[i*2::i] = [False] * len(r[i*2::i])
print(*[x for x, _ in enumerate(r) if r[x] and x >= M], sep='\n')