BOJ 1929 소수 구하기

3028 단어 2021.01.242021.01.24

https://www.acmicpc.net/problem/1929
시간 2초, 메모리 256MB
input :

  • M N(1 ≤ M ≤ N ≤ 1,000,000)

output :

  • 증가하는 순서대로 소수를 출력

그냥 에라토스테네스의 체를 n 범위 까지 계산 하게 한 다음에
반복문으로 m 에서 n 범위 사이에 1인 값을 출력하게 했다.

import sys

m, n = map(int, sys.stdin.readline().split())
prime_num = [1] * 1000001
prime_num[1] = 0

i = 2
while i <= n:
    cnt = i + i
    while cnt <= n:
        prime_num[cnt] = 0
        cnt += i
    i += 1

for i in range(m, n + 1):
    if prime_num[i] == 1:
        print(i)

쫄려서 pypy로 제출함..

좋은 웹페이지 즐겨찾기