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

Python练习(14)-哥德巴赫猜想-中_第1张图片
这里发现,有的偶数可以找出多种组合,所以会重复输出,只需要一组便得以证明,所以可以在print 后加上break(结束内循环)

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

你可能感兴趣的:(python,exercises)