728x90
<문제 링크>
https://www.acmicpc.net/problem/1929
<문제 풀이>
- N과 M의 최댓값이 1,000,000이므로 에라토스테네스의 체 알고리즘으로 풀어야 함
<코드>
'''입력 예제
3 16
'''
import math
n,m = map(int,input().split())
array = [True for i in range(m+1)]
array[0],array[1] = 0,0 #0,1은 소수 아님 주의
for i in range(2,int(math.sqrt(m))+1):
if array[i]==True:
j = 2
while i*j <= m:
array[i*j] = False
j += 1
for i in range(n, m + 1):
if array[i]:
print(i)
<고쳐야 할 점>
- 에라토스테네스의 체 알고리즘 기억하기
- 0과 1은 소수가 아님 주의
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[이분탐색] 릿코드 Easy 704 'Binary Search' (Python) (0) | 2022.01.10 |
---|---|
[순열과 조합] 백준 1759번 '암호 만들기' (Python) (0) | 2021.12.22 |
[서로소집합] CCC '탑승구' (Python) (0) | 2021.12.20 |
[그래프 이론] 이취코 393p '여행 계획' (Python) (0) | 2021.12.20 |
[기타] 백준 1459번 '걷기' (Python) (0) | 2021.12.17 |