王德貴
每個可表示為 4n + 1 形式的素數,只能用一種兩數平方和的形式來表達。
17世紀偉大的法國數學家費馬(1601 – 1665 年)雖然于 1660 年就發現了這一著名的定理,然而直到 1670 年,才在費馬的兒子編輯的丟番圖(Diophantus,古希臘數學家)的《算術》中以附注的形式發表。不過書中不能肯定費馬是否已經得出證明。直到一百年后,才由歐拉發表了這一定理的證明,他為了解決這個問題辛苦研究多年才寫出了論文“費馬定理的證明,形為 4n + 1 素數可以表示為兩數平方之和”。
今天我們就用Python來簡單地驗證一下費馬—歐拉定理。
費馬—歐拉定理,也稱費馬—歐拉素數定理,現在已經有了多種證法。證明方法要涉及數論問題,在此不作過多論述,有興趣的老師和同學可以查閱相關資料。
今天我們只用Python做簡單驗證。
數論,是純粹數學的分支之一,主要研究整數的性質。歷史上的數學家做了很多相關研究,提出了很多有趣的問題,到了現在有的已經證明,有的仍然是世界級的難題,尚未被證明。我們在學習編程的過程中通過對數論難題的驗證,能提高我們對Python、圖形化或APPInventor的掌握,也能在鞏固編程知識的同時加強等級考試相關知識點的掌握。
我們驗證在一定范圍內的所有4n + 1 形式的素數,是不是都可以表示為兩數平方和的形式。
首先我們利用自定義函數確定在這個范圍內的所有素數,再篩選出所有4n + 1 形式的素數,然后利用枚舉算法一一驗證每個素數,是不是可以表示為兩數的平方和,如果可以,就輸出。
然后修改程序,根據兩數的和是否相同來去重。
程序涉及等級考試四級內容,自定義函數、枚舉、集合等相關知識。
兩次循環加判斷輸出在一定范圍內所有4n + 1 形式的素數(圖1)。

根據篩選出來的素數,先把所有滿足條件的兩數都輸出(圖2)。

比如先測試在100范圍內的素數情況。結果如下,大家可以看到,兩數有重復,但每個4n + 1 形式的素數都是一組值(圖3)。

我們利用兩數和去重,是因為不難推出兩數平方和相同,這兩個數的和一定不相等(圖4)。

輸出結果如下,可以看到,每個4n + 1 形式的素數都是一組值(圖5)。

我們可以測試更大范圍的值。1000范圍內,4n + 1 形式的素數共有80個(圖6)。

定理的驗證也可以用自定義函數,只需涉及等級考試二級內容,還可以利用集合去重。有興趣的老師和同學可以自己研究一下。
這個程序在執行中,先輸出所有質數,再篩選4n+1 形式的素數,所以我們在執行程序時,也可以想到另一個方法,就是在4倍范圍內判斷。
即是在1-n范圍內循環,求得4n+1的值,如果它是素數,那就輸出滿足條件的兩數,同時去重。程序如圖7:

可以看到輸出結果與前面相同(圖8)。

其實費馬-歐拉素數定理還涉及到很多相關數論問題,本文不作過多介紹。文章是我學習過程的心得,如有不當之處,請各位同仁、朋友斧正。
NULL與0有著扯不斷理還亂的關系,其實也不那么高深。
1.對象的內容不同
0表示對象的內容確定為0。
NULL表示對象的內容為空,即對象的內容是空白的。
空值表示對象的內容無法確定。
2.對象的值不同
0表示對象的值等于0。
NULL表示對象計算中具有保留的值,用于指示指針不引用有效對象。
空值表示值未知,空值一般表示數據未知、不適用或將在以后添加數據。
總的來說,0本身有著一些原生的特性,諸如:起始、沒有、正負的分界線,0/1中的0還可以表示否定。NULL在數據庫中表示不知道的數據,主要有3種意思:知道數據存在,但不知道具體值;不知道數據是否存在;數據不存在。