๐Ÿงท ๋ฌธ์ œ

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

M์ด์ƒ N์ดํ•˜์˜ ์†Œ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๐Ÿ›  ํ’€์ด

์ด ๋ฌธ์ œ๋Š” '์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด' ๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Step 1.
 ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์ด์šฉํ•ด ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค.

  • ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด
    : ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•  ๋ฒ”์œ„๋งŒํผ ๋ฐฐ์—ด์„ ํ• ๋‹นํ•˜๊ณ  ๊ทธ ์ธ๋ฑ์Šค์— ํ•ด๋‹น๊ฐ’์„ ๋„ฃ์–ด์ค€ ํ›„์—, 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๊ทธ ๊ฐ’์ด True๋ผ๋ฉด ๊ทธ ์ˆ˜์˜ ๋ฐฐ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋“ค์„ ๋ชจ๋‘ False๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•ด ๋Œ€๋Ÿ‰์˜ ์†Œ์ˆ˜๋ฅผ ํ•œ๊บผ๋ฒˆ์— ํŒ๋ณ„ํ•˜๋Š”๋ฐ ์šฉ์ดํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

๐Ÿ–Š ๋‚˜์˜ ์ฝ”๋“œ

import sys

input = sys.stdin.readline

def is_prime(x, y):
    prime_num = [True] * (y+1)

    for i in range(2, int(y**0.5)+1):
        if prime_num[i] == False:
            continue

        for j in range(2*i, y+1, i):
            prime_num[j] = False

    for idx in range(x, y+1):
        if idx <= 1:
            continue
        if prime_num[idx] == True:
            print(idx)

if __name__ == "__main__":
    m, n = map(int, input().split())
    is_prime(m, n)