描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
本题含有多组样例输入。
数据范围:输入的数据满足 4 \le n \le 1000 \4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
输出两个素数
示例1
输入:
20复制
输出:
7 13复制
示例2
输入:
4复制
输出:
22def 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