소스코드

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