複製鏈接
請複製以下鏈接發送給好友

完全數

鎖定
完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於它本身。
如果一個數恰好等於它的真因子之和,則稱該數為“完全數”。第一個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128、33550336等等。截至2018年,相關研究者已經找到51個完全數。 [1] 
中文名
完全數
外文名
Perfect number
別    名
完美數或完備數
類    型
特殊的自然數
性質1
所有的完全數都是三角形數
性質2
可以表示成連續奇立方數之和
定    義
一個數恰好等於它的真因子之和,則稱該數為“完全數”

完全數定義

如果一個數恰好等於它的真因子之和,則稱該數為“完全數” [2]  。各個小於它的約數(真約數,列出某數的約數,去掉該數本身,剩下的就是它的真約數)的和等於它本身的自然數叫做完全數(Perfect number),又稱完美數或完備數。
例如:第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其餘3個數相加,1+2+3=6。第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其餘5個數相加,1+2+4+7+14=28。第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外,其餘9個數相加,1+2+4+8+16+31+62+124+248=496。後面的完全數還有8128、33550336等等。

完全數特有性質

(1)所有的完全數都是三角形數。一定數目的點或圓在等距離的排列下可以形成一個等邊三角形,這樣的數被稱為三角形數。例如:6=1+2+3;28=1+2+3+4+5+6+7;496=1+2+3+...+30+31;8128=1+2+3…+126+127。
(2)所有的完全數的倒數都是調和數。例如:1/1+1/2+1/3+1/6=2;1/1+1/2+1/4+1/7+1/14+1/28=2;1/1+1/2+1/4+1/8+1/16+1/31+1/62+1/124+1/248+1/496=2。
(3)可以表示成連續奇立方數之和。除6以外的完全數,都可以表示成連續奇立方數之和,並規律式增加。例如:28=1³+3^3;496=1^3+3^3+5^3+7^3;8128=1^3+3^3+5^3+……+15^3;33550336=1^3+3^3+5^3+……+125^3+127^3。
(4)都可以表達為2的一些連續正整數次冪之和。不但如此,而且它們的數量為連續質數。例如:6=2^1+2^2;28=2^2+2^3+2^4;496=2^4+2^5+2^6+2^7+2^8;8128=2^6+2^7+2^8+2^9+2^10+2^11+2^12;33550336=2^12+2^13+……+2^24。
(5)完全數都是以6或8結尾。如果以8結尾,那麼就肯定是以28結尾。(科學家仍未發現由其他數字結尾的完全數。)
(6)各位數字輾轉式相加個位數是1。除6以外的完全數,把它的各位數字相加,直到變成個位數,那麼這個個位數一定是1。例如:28:2+8=10,1+0=1;496:4+9+6=19,1+9=10,1+0=1;8128:8+1+2+8=19,1+9=10,1+0=1;33550336:3+3+5+5+0+3+6=28,2+8=10,1+0=1。
(7)它們被3除餘1、被9除餘1、1/2被27除餘1。除6以外的完全數,它們被3除餘1,9除餘1,還有1/2被27除餘1。28/3 商9餘1,28/9 商3餘1,28/27 商1餘1。496/3 商165餘1,496/9 商55餘1。8128/3 商2709餘1,8128/9 商903餘1,8128/27 商301餘1。

完全數歷史

圖1 畢達哥拉斯 圖1 畢達哥拉斯
公元前6世紀的畢達哥拉斯是最早研究完全數的人,他已經知道6和28是完全數。畢達哥拉斯曾説:“6象徵着完滿的婚姻以及健康和美麗,因為它的部分是完整的,並且其和等於自身。”有些《聖經》註釋家認為6和28是上帝創造世界時所用的基本數字,因為上帝創造世界花了六天,二十八天則是月亮繞地球一週的日數。聖·奧古斯丁説:6這個數本身就是完全的,並不因為上帝造物用了六天;事實上,因為這個數是一個完全數,所以上帝在六天之內把一切事物都造好了。
在中國文化裏:有六穀、六畜、戰國時期的六國、秦始皇以六為國數、六常(仁、義、禮、智、信、孝)、天上四方有二十八宿等等,6和28,在中國歷史長河中,之所以熠熠生輝,是因為它是一個完全數。難怪生有的學者説,中國發現完全數比西方還早呢。
圖2 數論論著 圖2 數論論著
完全數誕生後,吸引着眾多數學家與業餘愛好者像淘金一樣去尋找。它很久以來就一直對數學家和業餘愛好者有着一種特別的吸引力,他們沒完沒了地找尋這一類數字。接下去的兩個完數看來是公元1世紀,畢達哥拉斯學派成員尼克馬修斯發現的,他在其《數論》一書中有一段話如下:也許是這樣,正如美的、卓絕的東西是罕有的,是容易計數的,而醜的、壞的東西卻滋蔓不已;是以盈數和虧數非常之多,雜亂無章,它們的發現也毫無系統。但是完全數則易於計數,而且又順理成章:因為在個位數裏只有一個6;十位數里也只有一個28;第三個在百位數的深處,是496;第四個卻在千位數的尾巴頸部上,是8128。它們具有一致的特性:尾數都是6或8,而且永遠是偶數。但在茫茫數海中,第五個完全數要大得多,居然藏在千萬位數的深處!它是33550336,它的尋求之路也更加撲朔迷離,直到十五世紀才由一位無名氏給出。這一尋找完全數的努力從來沒有停止。電子計算機問世後,人們藉助這一有力的工具繼續探索。笛卡爾曾公開預言:“能找出完全數是不會多的,好比人類一樣,要找一個完美人亦非易事。”時至今日,人們一直沒有發現有奇完全數的存在。於是是否存在奇完全數成為數論中的一大難題。只知道即便有,這個數也是非常之大,並且需要滿足一系列苛刻的條件。

完全數疑難問題

(1)到底有多少完全數?
答:尋找完全數並不是容易的事。經過不少數學家研究,到2018年為止,一共找到了51個完全數。 [1] 
(2)有沒有奇完全數?
答:奇怪的是,已發現的51個完全數都是偶數,會不會有奇完全數存在呢?如果存在,它必須大於10^300。至今無人能回答這些問題。儘管沒有發現奇完全數,但是當代數學家奧斯丁·歐爾證明,若有奇完全數,則其形式必然是12^p+1或36^p+9的形式,其中p是素數。在10^300以下的自然數中奇完全數是不存在的。
另外,如果存在奇完全數,則它們必能表示p^2*q的形式,除6外的偶完全數亦有此性質。

完全數計算方法

完全數推導公式

大數學家歐拉曾推算出完全數的獲得公式:如果p是質數,且2^p-1也是質數,那麼(2^p-1)X2^(p-1)便是一個完全數。
例如p=2,是一個質數,2^p-1=3也是質數,(2^p-1)X2^(p-1)=3X2=6,是完全數。
例如p=3,是一個質數,2^p-1=7也是質數,(2^p-1)X2^(p-1)=7X4=28,是完全數。
例如p=5,是一個質數,2^p-1=31也是質數,(2^p-1)X2^(p-1)=31X16=496是完全數。
但是2^p-1什麼條件下才是質數呢?事實上,當2^p-1是質數的時候,稱其為梅森素數。到2013年2月6日為止,人類只發現了48個梅森素數,較小的有3、7、31、127等。

完全數計算機枚舉法

例如:
(1)利用VB編程求10000以內完全數。
Dim a as Integer,b as Integer,c as Integer
For a = 1 To 10000
c = 0
For b = 1 To a \ 2
If a Mod b = 0 Then c = c + b
Next b
If a = c Then Print Str(a)
Next a
(2)利用C語言編程求1000以內完全數。
#include<stdio.h>
int main()
{
int i, j, s, n; /*變量i控制選定數範圍,j控制除數範圍,s記錄累加因子之和*/
printf("請輸入所選範圍上限:");
scanf("%d", &n); /* n的值由鍵盤輸入*/
for( i=2; i<=n; i++ )
{
s=0; /*保證每次循環時s的初值為0*/
for( j=1; j<i; j++ )
{
if(i%j == 0) /*判斷j是否為i的因子*/
s += j;
}
if(s == i) /*判斷因子這和是否和原數相等*/
printf("It's a perfect number:%d\n", i);
}
return 0;
}

圖3Java代碼運行結果 圖3Java代碼運行結果
(3)利用java語言編程求10000以內完全數。
public class test46 {
 public static void main(String args[]) {
  int sum = 0;
  int i = 2,j = 1;
  for(i = 2; i <= 10000; i++)
  {
   for(j = 1; j < i; j++)
   {
    if(i%j == 0)
     sum = sum+j;
   }
   if(sum == i)
    System.out.println(" " + sum);
   sum = 0;
  }
 }
}

(4)利用JavaScript語言編程求N以內完全數。
function perfectNumber(N){
var nums = [], sum, i, j;
//0除以任意數都是0,所以從1開始
for (i = 0; i <= N; i++){
sum = 0
//完全數除以自己一半,求餘肯定會大於0,所以用i/2
for(j = 1; j <= i/2; j++){
if (i % j === 0){
sum += j;
}
}
if (sum === i){
nums.push(i);
}
}
return nums;
}

完全數梅森素數

圖4 梅森素數表 圖4 梅森素數表
古希臘數學家歐幾里得在名著《幾何原本》中證明了素數有無窮多個,並論述完全數時提出:如果2^P-1是素數(其中指數P也是素數),則2^(P-1)(2^P-1)是完全數。瑞士數學家和物理學家歐拉證明所有的偶完全數都有這種形式。因此,人們只要找到2^P-1型素數,就可以發現偶完全數了。數學界將2^P-1型素數稱為“梅森素數”(Mersenne prime),因為法國數學家和法蘭西科學院奠基人梅森在這方面的研究成果較為卓著。梅森素數貌似簡單,但探究難度卻極大。它不僅需要高深的理論和純熟的技巧,而且還需要進行艱鉅的計算。到2018年為止,人類僅發現51個梅森素數。 [1] 
值得提出的是:在梅森素數的基礎研究方面,法國數學家魯卡斯和美國數學家雷默都做出了重要貢獻;以他們命名的“魯卡斯-雷默方法”是已知的檢測梅森素數素性的最佳方法。此外,中國數學家和語言學家周海中給出了梅森素數分佈的精確表達式,為人們尋找梅森素數提供了方便;這一研究成果被國際上命名為“周氏猜測”。
梅森素數表如圖4所示。

完全數已發現完全數

1……6
2……28
3……496
4……8,128
5……33,550,336
6……8,589,869,056
7……137,438,691,328
8……2,305,843,008,139,952,128
9……2,658,455,991,569,831,744,654,692,615,953,842,176
10……191,561,942,608,236,107,294,793,378,084,303,638,130,997,321,548,169,216
11……13,164,036,458,569,648,337,239,753,460,458,722,910,223,472,318,386,943,117,783,728,128
12……14,474,011,154,664,524,427,946,373,126,085,988,481,573,677,491,474,835,889,066,354,349,131,199,152,128
……
……
47 ……2^42643800 ×(2^42643801-1)
48 ……2^57885160 × (2^57885161-1)
由於後面數字位數較多,例子只列到12個,第13個有314位。
到第39個完全數有25674127位數,據估計它以四號字打出時需要一本字典大小的書。
參考資料