哥德巴赫猜想说是说,任何一个超过 2 的偶数都可以写成两个素数之和,例如,4=2+2,8=5+3 等

本例要求根据用户输入的偶数找出其素数和的分解形式

i =  int(input("请输入大于2的偶数:"))
value = 0
l = []
if i >2 and i%2 ==0:
    for j in range(2,i+1):
        for k in range(2,j):
            if j%k == 0:
                break
        else:
            l.append(j)
    for k in range(len(l)):
        for f in range(len(l)):
            value = l[k] +l[f]
            if i == value:
                if l[k] <= l[f]:     #为了去除重复,例如:8=3+5 8=5+3
                    print(i,"=",l[k],"+",l[f])
else:
    print("输入的数值不符合要求")

#
# 刘:
def main():
    # 输入待验证的偶数
    N = int(input("请输入待验证的偶数:"))
    while N < 3 or N % 2 == 1:
        print("输入的数不符合要求")
        N = int(input("请输入待验证的偶数n(n>2):"))
    # 生成素数表
    Prime = set()
    for i in range(2, N + 1):
        Prime.add(i)
    for i in range(2, N + 1):
        if i in Prime:
            for k in range(2 * i, N + 1, i):
                if k in Prime:
                    Prime.remove(k)
    # 验证该偶数能否分解为两个素数之和
    for e in Prime:
        f = N - e
        if f >= e and f in Prime:
            print(N, '=', e, '+', f)


main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值