728x90
골드바흐의 추축은 아래와 같이 설명된다.
- 2보다 큰 모든 짝수는 두 소수의 합으로 표현 가능하다.
- 위의 문장에 3을 더하면
- 5보다 큰 모든 홀수는 세 소수의 합으로 표현 가능하다.
- 증명이 되어있지 않아 추측
- 하지만 10^18이하에서는 참인 것이 증명되어 있다.
100만 이하의 짝수가 들어왔을 때, 두 소수의 합으로 표현할 수 있는지를 알아보는 문제
Example)
https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰
www.acmicpc.net
Solution)
MAX = 1000000
check = [0]*(MAX+1)
prime = []
check[0] = check[1] = True
for i in range(2, MAX+1):
if not check[i]:
prime.append(i)
j = i+i
while j <=MAX:
check[j] = True
j += i
prime = prime[1:]
while True:
n = int(input())
if n == 0:
break
for p in prime:
if check[n-p] == False:
print("{0} = {1} + {2}".format(n,p, n-p))
break
728x90
'코딩테스트' 카테고리의 다른 글
브루드 포스 - 백준 1476 [Python] (0) | 2021.07.28 |
---|---|
브루트 포스 - 백준 2309 [Python] (0) | 2021.07.26 |
소수 - 백준 1929 [Python] (0) | 2021.07.16 |
소수 - 백준 1978 [Python] (0) | 2021.07.16 |
최대공약수/최소공배수 - 백준 2609 [Python] (0) | 2021.07.16 |
댓글