반응형

문제

https://www.acmicpc.net/problem/4948



실제로 베르트랑 가설이 있었다.

이후 확장된 결과들도 많이있다.

최종적으로는 2010760보다 큰 모든 자연수에 대하여 과  사이에 적어도 하나의 

소수가 존재한다는 명제를 증명했다고 한다.

https://ko.wikipedia.org/wiki/%EB%B2%A0%EB%A5%B4%ED%8A%B8%EB%9E%91_%EA%B3%B5%EC%A4%80

물론 우리가 풀 문제는 위 와 동일하고 입출력부분만 바꾸어 주면되기에 나머지는 

코드만 올려야겠다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
 
prime_number=[2 for _ in range(123456*2+1)]
 
for i in range(1,123456*2+1):
    if i==1:
        prime_number[i]=0
    elif prime_number[i]!=0:
        prime_number[i]=1
        mul = 2
        j = i
        while(j*mul<=123456*2):
            prime_number[j*mul]=0
            mul+=1
 
 
while(1):
    n=int(sys.stdin.readline())
    result=0
    if n==0:
        break
    for i in range(n+1,2*n+1):
        if prime_number[i]==1:
            result+=1
 
    print(result)
 

cs





반응형

'알고리즘(python) > 수학' 카테고리의 다른 글

[Python]수학2 백준 1085  (0) 2019.12.21
[Python]수학2 백준 9020  (0) 2019.12.21
[Python]수학2 백준 1929  (0) 2019.12.20
[Python]수학2 백준 2581  (0) 2019.12.20
[Python]수학2 백준 1978  (0) 2019.12.20
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기