[백준] 4948번 베르트랑 공준

거북이·2023년 1월 24일
0

백준[실버2]

목록 보기
9/81
post-thumbnail

💡문제접근

  • 에라토스테네스의 체를 이용하여 n보다 크고 2n보다 작거나 같은 소수를 모두 찾아내는 방식으로 코드를 작성했다.

💡코드(메모리 : 34492KB, 시간 : 2792ms)

import sys
input = sys.stdin.readline

while True:
    n = int(input().strip())
    if n == 0:
        break
    arr = [True] * (2*n+1)
    arr[0] = False
    arr[1] = False
    for i in range(2, 2*n+1):
        if arr[i]:
            for j in range(i*i, 2*n+1, i):
                arr[j] = False
    cnt = 0
    for i in range(n+1, 2*n+1):
        if arr[i]:
            cnt += 1
    print(cnt)

💡소요시간 : 5m

0개의 댓글