Python练习(14)-哥德巴赫猜想-中

问题描述

众所周知,哥德巴赫猜想的证明是一个世界性的数学难题,至今未能完全解决。我国著名数学家陈景润为哥德巴赫猜想的证明作出过杰出的贡献。 所谓哥德巴赫猜想是说任何一个大于2的偶数都能表示成为两个素数之和。
编写程序,验证指定范围内哥德巴赫猜想的正确性,也就是近似证明哥德巴赫猜想。

分析:
构造素数判断函数;
在范围内50 遍历,找到偶数n;(奇数也要执行一次,算法复杂度较大,改用 i+=2 来直接找到偶数)
再用一个循环,i 遍历3到 n/2,判断i 和 n-i 是否是素数,是则输出

代码

import math
def isPrimeNumber(num):
    i = 2
    x = math.sqrt(num)
    while i < x:
        if num%i == 0:
            return False
        i += 1
    return True
n=6
while n < 51:
        for j in range(3,int(n/2)):
            if isPrimeNumber(j) and isPrimeNumber(n-j):
                print '%s = %s + %s' % (n, j, n-j)
                #break   # 找到符合的组合后,便结束内循环
    n+=2

在这里插入图片描述
这里发现,有的偶数可以找出多种组合,所以会重复输出,只需要一组便得以证明,所以可以在print 后加上break(结束内循环)

知识积累
print ‘%s’ % 3, ‘%’
3 %

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值