# 10000이하의 수 중에서 소수인 수들 구하기
list = range(2, 10000)
sosu_list = []
def sosu():
for i in list:
if i==2 or i==3:
sosu_list.append(i)
continue
else:
for j in range(2, int(i**0.5)+1):
if i%j==0:
break
else: sosu_list.append(i)
# 골든바흐 수 구하기
def goldbach(n):
k = n/2
while True:
if k in sosu_list and (n-k) in sosu_list:
print(int(k), int(n-k))
break
else:
k-=1
if __name__ == "__main__":
sosu()
test = int(input())
for i in range(test):
num = int(input())
goldbach(num)
그리고 골든바흐수를 구하는 함수를 만들었다.
n은 k와 n-k의 합이다.
n은 무조건 짝수이기 때문에 2로 나눠진다.
n을 2로 나누 수를 k라고 가정했을 때,
k와 n-k가 모두 소수라면 그것이 골든바흐의 수이다.
만약 k와 n-k 둘 중 하나라도 소수가 아니면
k을 1씩 줄여가며 반복한다.