先找出0到该数里的质数,存到序列里,然后再找加起来等于该数的两个数,最后比较距离,取距离最小的.
import math
while True:
try:
num1 = int(input())
prime_num = []
for i in range(num1):
if(i >= 2):
flag = 0
for j in range(1,math.ceil(i**0.5)):
if(i%(j+1) == 0):
flag = 1
break
if(flag == 0):
prime_num.append(i)
m = 0
n = 0
distance = num1
for i in range(len(prime_num)):
for j in range(len(prime_num)-1 , -1 , -1):
if(prime_num[i] + prime_num[j] == num1):
distance1 = abs(prime_num[j] - prime_num[i])
if(distance1 < distance):
m = prime_num[i]
n = prime_num[j]
distance = distance1
print(m)
print(n)
except:
break


京公网安备 11010502036488号