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

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

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

'''
while True:
    try:
        n=int(input())
        prime_n=[]
        for i in range(2,n):
            for j in range(2,int(i**0.5)+1):
                if i%j==0:
                    break    
                # i能被j整除,则不是素数,跳出j循环,进行下一个i循环
            else:
                prime_n.append(i)
        #print(prime_n)
        diff=[]
        for each in prime_n:
            l=[each,n-each,abs(2*each-n)]
            column=[row[2] for row in diff]
            if n-each in prime_n and abs(2*each-n) not in column:
                diff.append(l)
        #print(diff)
        diff_num=[row[2] for row in diff]
        for i in diff:
            if i[2]==min(diff_num):
                print(i[0])
                print(i[1])
    except:
        break
'''
# 先定义一个素数判别函数,再判断 i 和 n-i 是否均为素数,较为简单
def isSuShu(x):
    if x <= 2:
        return True
    else:
        for i in range(2, int(x ** 0.5) + 1):
            if x % i == 0:
                return False
        else:
            return True
#print(isSuShu(3),isSuShu(4))
while True:
    try:

        n = int(input())

        for i in range(int(n / 2), n):  
        #两加数,必定一个在(1,n/2),一个在(n/2+1,n);离n/2最近的俩素数 差最小。
            if isSuShu(i) and isSuShu(n - i):
                print(n - i)
                print(i)
                break
    except:
        break


全部评论

相关推荐

求个公司要我:接好运
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务