본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 4948번 베르트랑 공준

by 현장 2022. 5. 7.

-Code

from sys import stdin
cover = 246913
sieve = [False, False] + [True] * cover
for i in range(2, int(cover ** 0.5) + 1):
    if sieve[i]:
        for j in range(i + i, cover, i):
            sieve[j] = False

while 1:
    n = int(stdin.readline())
    cnt = 0
    if n == 0:
        break
    for i in range(n + 1, 2 * n + 1):
        if sieve[i]:
            cnt += 1
    print(cnt)

처음에 prime리스트로 True인 값만 저장하는 리스트를 만들어서 시간 초과가 나서 sieve에서 판단하게 만들어 시간을 줄였더니 통과했습니다.