Coding Test/Baekjoon
9020. 골드바흐의 추측
브이담곰
2024. 7. 6. 14:08
https://www.acmicpc.net/problem/9020
✔ 유형 : 수학
✔ 문제 풀이: 소수의 특성과 두 수의 합을 이용
골드바흐 추측
- 유명한 정수론의 미해결 문제
- 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다.
문제 조건
- 입력받은 N은 2보다 큰 짝수이다.
- N은 두 소수의 덧셈 값으로 나타낼 수 있다.
- 여러 쌍이 있다면 두 소수의 차이가 가장 작아야한다.
N의 중간값을 기준으로 두고 a+b = N 일 때, a와 b의 차이를 벌리며 a,b 두 수가 소수인 지점을 찾는다.
def isPrime(a : int) -> bool :
if ( a == 1 ) : False
for i in range(2, 10001):
if( i*i > a ) : break
if( a%i == 0 ) : return False
return True
pbCount = int(input())
for n in range(pbCount):
N = int(input())
a = N//2
b = N//2
while(True):
if(isPrime(a) and isPrime(b)) :
print(a,b)
break
a -= 1
b += 1