Python練習(14)-哥德巴赫猜想-中
阿新 • • 發佈:2018-11-11
問題描述
眾所周知,哥德巴赫猜想的證明是一個世界性的數學難題,至今未能完全解決。我國著名數學家陳景潤為哥德巴赫猜想的證明作出過傑出的貢獻。 所謂哥德巴赫猜想是說任何一個大於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 %