用Python证明哥德巴赫猜想

该博客介绍了一个Python程序,用于验证哥德巴赫猜想。程序通过两个循环找到6到100之间的素数,并组合成偶数,解决循环无输出和重复输出的问题。输入的偶数需转换为整数类型,程序会输出所有可能的素数加法组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

 

提示:用Python验证哥德巴赫猜想
 


问题描述:

随机输入一个6~100的偶数,编写isGDBH()函数,将结果以列表形式输出。

例:输入10,结果为[“3+7=10“,”5+5=10“]。

出现的问题:1.在两个循环中一直没有输出,素数列表以及循环本身并无问题。

                      2.重复输出,例如3+7与7+3都输出。

list1=[]
def isGDBH(n):
    for i in range(2, 100):
        if i % 2 == 0:
            continue
        for j in range(3, int(i ** 0.5) + 1, 2):
            if i % j == 0:
                break
        else:
            list1.append(i)
    list2=[]
    for i in list1:
        for j in list1:             #第二个问题        
            if i+j==a:
                list2.append("%d+%d=%d"%(i,j,a))
    print(list2)
a=input("请输入一个6-100的偶数:")       #第一个问题
isGDBH(a)


原因分析:

1.input函数输入格式为字符串,i,j为int型,无法相等,因此无输出。

2.j只遍历从i往后的list元素,这样就可以避免重复输出。


解决方案:

list1=[]
def isGDBH(n):
    for i in range(2, 100):
        if i % 2 == 0:
            continue
        for j in range(3, int(i ** 0.5) + 1, 2):
            if i % j == 0:
                break
        else:
            list1.append(i)
    list2=[]
    for i in list1:
        for j in list1[list1.index(i)::]:    #利用索引和列表的切片,实现j遍历的元素为i-end
            if i+j==a:
                list2.append("%d+%d=%d"%(i,j,a))
    print(list2)
a=int(input("请输入一个6-100的偶数:"))       #在input前添加int强制转换数据类型
isGDBH(a)
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值