描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

本题含有多组样例输入。

数据范围:输入的数据满足 4 \le n \le 1000 \4n1000 

输入描述:

输入一个大于2的偶数

输出描述:

输出两个素数

示例1

输入:
20
复制
输出:
7
13
复制

示例2

输入:
4
复制
输出:
2
			
2
def sushu(n):#返回n以内的素数列表
    list_sushu=[1,2,3]
    for i in range(4,n+1):        
        for j in range(2,i+1):
            if i %j ==0 and i==j:
                list_sushu.append(i)
            elif i%j==0:
                break
    return list_sushu
while True:
    try:
        n=int(input())
        list_sushu=[]
        list_1=[]
        list_2=[]
        list_sushu=sushu(n)
        for i in list_sushu:
            if (n-i) in list_sushu:
                list_1.append((i,n-i,abs(n-2*i)))#符合要求的素数对与差值作为元组,存入新列表
        list_2=sorted(list_1,key=lambda x:(x[2]))#对新列表按照元组第3个参数进行排序
        print(min(list_2[0][0],list_2[0][1]))#分别输出前面最小差值的素数对的两个值
        print(max(list_2[0][0],list_2[0][1]))
    except:
        break