-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에서 판단하게 만들어 시간을 줄였더니 통과했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 11051번 이항 계수 2 (0) | 2022.05.07 |
---|---|
[백준/파이썬] 9020번 골드바흐의 추측 (0) | 2022.05.07 |
[백준/파이썬] 4358번 생태학 (0) | 2022.05.06 |
[백준/파이썬] 18115번 카드 놓기 (0) | 2022.05.06 |
[백준/파이썬] 10799번 쇠막대기 (0) | 2022.05.06 |