import sys
input = sys.stdin.readline
T = int(input().strip())
MAX_N = 10000
# 1만까지 중에서 소수 찾기
sosu = [True] * (MAX_N+1)
sosu[0], sosu[1] = False, False
def find_sosu(sosu_arr):
for i in range(2, int(MAX_N**0.5) + 1):
if sosu_arr[i] == True:
for j in range(i*i, MAX_N+1, i):
sosu_arr[j] = False
find_sosu(sosu)
for _ in range(T):
n = int(input().strip())
for i in range(n // 2,0,-1):
if sosu[i] == True and sosu[n-i] == True:
sys.stdout.write(f"{n-i} {i}\\n")
break
이 문제를 풀기 위해서는 다음 세 가지 부분을 파악해야합니다 :
# 1만까지 중에서 소수 찾기
sosu = [True] * (MAX_N+1)
sosu[0], sosu[1] = False, False
def find_sosu(sosu_arr):
for i in range(2, int(MAX_N**0.5) + 1):
if sosu_arr[i] == True:
for j in range(i*i, MAX_N+1, i):
sosu_arr[j] = False
for _ in range(T):
n = int(input().strip())
for i in range(n // 2,0,-1):
if sosu[i] == True and sosu[n-i] == True:
sys.stdout.write(f"{n-i} {i}\\n")
break