王德貴 丁大為
哥德巴赫猜想,是世界近代三大數學難題之一。華羅庚是中國最早從事哥德巴赫猜想的數學家。1936—1938年,他赴英留學,師從哈代研究數論,并開始研究哥德巴赫猜想,驗證了幾乎所有的偶數猜想。1966年,華羅庚的學生陳景潤在對篩法做了新的重要改進后,證明了“1+2”,他證明了任何一個充分大的偶數,都可以表示為兩個數之和,其中一個是質數,另一個或為質數或為兩個質數的乘積,被稱為“陳氏定理”,這在當時影響很大,但之后就再也沒有什么研究進展了。
哥德巴赫猜想,是數學史上和質數有關的數學猜想,影響了一代又一代數學家。
1742年6月7日,德國數學家哥德巴赫在寫給著名數學家歐拉的一封信中,提出了一個大膽的猜想:任何不小于3的奇數,都可以是三個質數之和(如:7=2+2+3。當時1仍屬于質數)。
同年,6月30日,歐拉在回信中提出了另一個版本的哥德巴赫猜想:任何偶數,都可以是兩個質數之和(如:4=2+2。當時1仍屬于質數)。
這就是數學史上著名的“哥德巴赫猜想”。由于1已經不歸為質數,所以這兩個猜想分別變為:
任何不小于7的奇數,都可以寫成三個質數之和的形式;
任何不小于4的偶數,都可以寫成兩個質數之和的形式。
20世紀,隨著計算機技術的發展,數學家們發現哥德巴赫猜想對于更大的數依然成立。但自然數是無限的,無法判斷是否存在某一個足夠大的偶數,成為哥德巴赫猜想的反例,但數學家們仍在不斷的探索中,尋求著各種不同的解決方法。
如果想了解更深入的知識,大家可以參考相關資料。今天我們只利用Python做基本驗證。
在Python學習過程中,嘗試解決一些問題,特別是世界數學難題,不僅是一種樂趣,同時也能學到數學知識,了解一些數學發展歷史,也可以提高學生的學習興趣和學習積極性,更能加深理解程序的優化與調試。
“關于偶數的哥德巴赫猜想”,我們可以將要分析的任一正整數減去一個質數,然后看看結果是不是也為質數,這是一種方法;還有一種方法就是遍歷質數,看看有沒有符合條件的兩個質數。
“關于奇數的哥德巴赫猜想”,我們可以將要分析的任一正整數減去一個質數,然后看看結果是不是也為質數,這是一種方法;還有一種方法就是遍歷質數,看看有沒有符合條件的三個質數。
這幾種方法的基礎都需要把正整數范圍內的質數先求出來。我們用列表形式將質數存儲,計算和訪問很方便。
1.關于偶數的哥德巴赫猜想
任何不小于4的偶數,都可以寫成兩個質數之和的形式。
這個猜想的理解是,4=2+2,6=3+3,8=3+5,10=3+
7,12=5+7……有無數個,我們無法一一列舉,通過編程也只能驗證有限范圍,否則運行時間將無限延長。
(1)方法一:遍歷質數列表,取出兩個質數驗證
程序有兩部分,一是建立質數列表,二是在列表中確定有沒有滿足條件的質數。有一組則程序結束,并顯示出來(圖1)。

也可以利用自定義函數,程序如圖2。

要求出不小于這個偶數范圍內的質數,于是把質數獲取做了自定義函數,利用列表把質數列舉出來,然后便于下一步計算和驗證。
輸入不小于4的偶數后,調用自定義函數,把這個范圍內的質數放在列表里,然后利用枚舉算法,在列表中取兩個數,驗證是否等于輸入的偶數,如果等于偶數,即輸出。
這兩個程序運行結果是完全一樣的,它們都是在質數列表里任意取兩個數,驗證其和是不是等于輸入的偶數。
(2)方法二:判斷偶數與質數的差是否為質數
這種方法減小了時間復雜度,運行速度更快,程序如圖3。

測試結果如圖4。

2.關于奇數的哥德巴赫猜想
任何不小于7的奇數,都可以寫成三個質數之和的形式。
根據前面的驗證,修改程序,便可以驗證“關于奇數數的哥德巴赫猜想”。即多加一重for循環,同時判斷輸入數與兩個質數之差是否也為質數,如果是,則輸出算式,程序結束(圖5)。

驗證結果如圖6。