STUDY/Algorithm

[백준] 4948 베르트랑 공준

sinawi95 2021. 2. 12. 12:38
728x90

www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net

tmp = 123456*2
prime=[False,False]+[True]*(tmp)
for i in range(2,int(tmp**0.5)+1):
    if prime[i]:
        for j in range(2*i,tmp+1,i):
            prime[j]=False

while True:
    n = int(input())
    if n == 0:
        break
    print(prime[n+1:2*n+1].count(True))

이번엔 에라토스테네스의 체를 사용할때 범위를 줄였다. ㅋㅋ

tmp는 제한 숫자의 두배 되는 값이다.

에라토스테네스의 체로 최대 숫자까지 미리 소수를 구해놓고 구간을 슬라이싱 하여 True의 개수를 출력했다.

 

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 1002 터렛  (0) 2021.02.12
[백준] 9020 골드바흐의 추측  (0) 2021.02.12
[백준] 1929 소수구하기  (0) 2021.02.12
[백준] 11653 소인수분해  (0) 2021.02.12
[백준] 11659 구간 합 구하기 4  (0) 2021.02.11