题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

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') #而后拼接成列表输出。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务