백준 9020 - 골드바흐의 추측 (파이썬)

Updated:

Answer

from sys import stdin
input = stdin.readline

x = [False, False, True] + [True, False] * 5000

for i in range(3, 101, 2):
    if x[i]:
        x[i * 2::i] = [False] * len(x[i * 2::i])

T = int(input())
for _ in range(T):
    a = int(input())
    
    if a == 4:
        print(2, 2)
        continue
    
    half_a = a // 2
    
    if half_a % 2 == 0:
        half_a += 1
        
    for i in range(half_a, a, 2):
        if x[i] and x[a - i]:
            print(a - i, i)
            break

Categories:

Updated: