本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 定义 如果一个数恰好等于它的真因子之和,则称该数为“完全数” [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+...+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。 历史 公元前6世纪的毕达哥拉斯是最早研究完全数的人,他已经知道6和28是完全数。毕达哥拉斯曾说:“6象征着完满的婚姻以及健康和美丽,因为它的部分是完整的,并且其和等于自身。”有些《圣经》枣端凳肯注释家认为6和28是上帝创造世界时所用的基本数字,因为上帝创造世界花了六天,二十八天则是月亮绕地球一周的日数。圣·奥古斯丁说:6这个数本身就是完全的,并不因为上帝造物用了六天;事实上,因为这个数是一个完全数,所以上帝在六天之内把一切事物都造好了。在中国文化里:有六谷、六畜、战国时期的六国、秦始皇以六为国数、六常(仁、义、礼、智、信、孝)、天上四方有二十八宿等等,6和28,在中国历史长河中,之所以熠熠生辉,是因为它是一个完全数。难怪生有的学者说,中国发现完全数比西方还早呢。 完全数诞生后,吸引着众多数学家与业余爱好者像淘金一样去寻找。它很久以来就一直对数学家和业余爱好者有着一种特别的吸引力,他们没完没了地找寻这一类数字。接下去的两个完数看来是公元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 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