逼近法

def isPrime(num):#定义一个素数判断函数
    for i in range(2,int(pow(num,0.5))+1):
        if num%i==0:
            return False
        else:
            pass
    return True
while True:
    try:
        n=int(input())
        for i in range(2,n//2+1):#截断整数部分
            if isPrime(i)and isPrime(n-i):#从两端开始逼近
                a,b=i,n-i
        print(a);print(b)
    except:
        break

下面这个方法是从中间往两边扩,理论上应该更快些

import math

def isPrime(n):
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

while True:
    try:
        num ,start= int(input()) // 2,1
        if num%2==1:
            start=0
        for i in range(start, num, 2):#确定了奇偶,步子就大些
            a, b = num + i, num - i
            if isPrime(a) and isPrime(b):
                print(b)
                print(a)
                break

    except:
        break