https://www.acmicpc.net/problem/1929
def solution(a, b):
number = [True for i in range(b + 1)]
for i in range(2, int(b ** 0.5) + 1):
if number[i]:
for j in range(2 * i, b + 1, i):
number[j] = False
for index in range(a, b + 1):
if number[index] and index != 1:
print(index)
a, b = map(int, input().strip().split(' '))
solution(a, b)
에라토스테네스의 체 알고리즘을 사용했다. 항상 소수 관련해서 이알고리즘을 써야하는 것을 알고는 있는데, 이해하고 외워서 풀었었는데, 다시 까먹어가지고 생각하면서 풀어보았다.
풀이를 정리해보겠다.