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

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

"""
思路:二分后枚举
列出包含中间界n//2及以内的所有素数
从最后一个素数i往前找,若第一出现的n-i也是素数,则i与n-i是所找素数对中间距最小的一对。
"""

def isPrime(i):
    """判断是否为素数的函数"""
    if i == 2:
        return True
    for j in range(2, i):
        if i % j == 0:
            return False
    return True


l = [] # 接收包含n//2及以内的所有素数
n = int(input())
for i in range(2, n//2+1): # 遍历素数(+1是为了能找至中间边界n//2)
    if isPrime(i):
        l.append(i)
for i in l[::-1]: # 从素数列表后往前找
    if isPrime(n-i): # 找到第一个素数对即可break
        print(i)
        print(n-i)
        break

全部评论
谢谢大佬的判断是否为素数的方法,我一下子豁然开朗
2 回复 分享
发布于 2022-11-02 15:52 陕西

相关推荐

14 10 评论
分享
牛客网
牛客企业服务