题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
from math import sqrt import sys def isprime(n): #判断是否素数 if n == 2: return True else: for i in range(2,int(sqrt(n))+1): if n%i == 0: return False return True def matchprime(n): 对n来说,寻找匹配的素数对。 lst = [x for x in range(n+1) if isprime(x)] res = [] for i in lst: for j in lst: if (i+j) == n: res.append([i,j,abs(i-j)]) #结果返回素数i,素数j以及二者差的绝对值用于排序 return res n = int(input()) res = sorted(matchprime(n),key=lambda x:x[2]) #按照|i-j|进行排序 resi,resj = min(res[0][0:2]),max(res[0][0:2]) #排序后第一个列表里的前两个值即为所求,注意大小排序 print(*([resi,resj]),sep='\n') #而后拼接成列表输出。