验证哥德巴赫猜想

逐渐发现脑子不够用。。。

python作业验证哥德巴赫猜想:

 

嗯。递归实在不会。就用循环加条件从句随便做了。

def sushu(m):#判断素数
    for i in range(2,m):#因子直接排除1和m本身
        if m%i==0:#只要再出现一个因子果断返回None
            return None
    else:
        return m
def gede(n):#验证哥德巴赫猜想
    for p in range(2,n):#for循环一个数
        if p==sushu(p) and n-p==sushu(n-p):#直接判断p和n-p是否是不是素数
            return p, n-p
        else:
            continue
def main():
    n=int(input())#输入要验证的数
    if n%2!=0:
        print("Data error!")
    else:
        p,q=gede(n)
        print("{} = {} + {}".format(n,p,q))
main()

  学C语言的时候大概做过类似的题,就是两个for语句嵌套看啥时候符合就break,刚刚做的时候也是这样的思路,但代码太长,有问题找不出来,为此还去B站学了怎么用pycharm debug。。。

  debug途中忽然顿悟,

if p==sushu(p) and n-p==sushu(n-p):#直接判断p和n-p是否是不是素数

直接省下了一个for循环一个条件语句。

懒才是第一生产力!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值