1. 程式人生 > >Python練習(14)-哥德巴赫猜想-中

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 %