본문 바로가기

PS/백준

[백준 1929번] 소수 구하기 (파이썬/python)

728x90

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

 

1929번: 소수 구하기

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

www.acmicpc.net

 

에라토스테네스의 체를 이용해 간단하게 풀 수 있다.

1은 소수가 아니기때문에 미리 False값을 넣어줘야함에 유의하자~!

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
from math import sqrt
 
input = sys.stdin.readline
 
a, b = map(int, input().split())
li = [True for _ in range(b + 1)]
li[1= False
 
# 에라토스테네스의 체
for i in range(2int(sqrt(b)) + 1):
    if li[i] == True:
        j = 2
        while i * j <= b:
            li[i * j] = False
            j += 1
 
for i in range(a, b + 1):
    if li[i] == True:
        print(i)
 
cs
728x90