完全数

来源:互联网 发布:mac os x 10.8 iso 编辑:程序博客网 时间:2024/06/11 07:34

编辑完数一般指完全数

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。
中文名
完全数
外文名
Perfect number
又    称
完美数或完备数
类    型
特殊的自然数
性质1
所有的完全数都是三角形数
性质2
可以表示成连续奇立方数之和

目录

1定义

 完全数
 亏数
 盈数

2特有性质

3历史

4疑难问题

5计算方法

 推导公式
 计算机枚举法

6梅森素数

 定义
 梅森素数表
 已发现的完全数

1定义编辑

完全数

如果一个数恰好等于它的因子之和,则称该数为“完全数”[1] 。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(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等等。

亏数

对于“4”这个数,它的真约数有1、2,其和是3,比4本身小,像这样的自然数叫做亏数。

盈数

对于“12”这个数,它的真约数有1、2、3、4、6,其和是16,比12本身大,像这样的自然数叫做盈数。所以,完全数就是既不盈余,也不亏欠的自然数。

2特有性质编辑

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

3历史编辑

公元前6世纪的毕达哥拉斯是最早研究完全数的人,他已经知道6和28是完全数
毕达哥拉斯

毕达哥拉斯

。毕达哥拉斯曾说:“6象征着完满的婚姻以及健康和美丽,因为它的部分是完整的,并且其和等于自身。”有些《圣经》注释家认为6和28是上帝创造世界时所用的基本数字,因为上帝创造世界花了六天,二十八天则是月亮绕地球一周的日数。圣·奥古斯丁说:6这个数本身就是完全的,并不因为上帝造物用了六天;事实上,因为这个数是一个完全数,所以上帝在六天之内把一切事物都造好了。
在中国文化里:有六谷、六畜、战国时期的六国、秦始皇以六为国数、六常(仁、义、礼、智、信、孝)、天上四方有二十八宿等等,6和28,在中国历史长河中,之所以熠熠生辉,是因为它是一个完全数。难怪生有的学者说,中国发现完全数比西方还早呢。
完全数诞生后,吸引着众多数学家与业余爱好者像淘金一样去寻找。它很久以来就一直对数学家和业余爱好者有着一种特别的吸引力,他们没完没了地找寻这一类数字。接下去的两个完数看来是公元1世纪,毕达哥拉斯学派成员尼克马修斯发现的,他在其《数论》一书中有一段话如下:也许是这样,正如美的、卓绝的东西是罕有的,是容易计数的,而丑的
数论

数论

、坏的东西却滋蔓不已;是以盈数和亏数非常之多,杂乱无章,它们的发现也毫无系统。但是完全数则易于计数,而且又顺理成章:因为在个位数里只有一个6;十位数里也只有一个28;第三个在百位数的深处,是496;第四个却在千位数的尾巴颈部上,是8128。它们具有一致的特性:尾数都是6或8,而且永远是偶数。但在茫茫数海中,第五个完全数要大得多,居然藏在千万位数的深处!它是33550336,它的寻求之路也更加扑朔迷离,直到十五世纪才由一位无名氏给出。这一寻找完全数的努力从来没有停止。电子计算机问世后,人们借助这一有力的工具继续探索。笛卡尔曾公开预言:“能找出完全数是不会多的,好比人类一样,要找一个完美人亦非易事。”时至今日,人们一直没有发现有奇完全数的存在。于是是否存在奇完全数成为数论中的一大难题。只知道即便有,这个数也是非常之大,并且需要满足一系列苛刻的条件。

4疑难问题编辑

Q1、到底有多少完全数?
A1、寻找完全数并不是容易的事。经过不少数学家研究,到2013年2月6日为止,一共找到了48个完全数。
Q2、有没有奇完全数?
A2、奇怪的是,已发现的48个完全数都是偶数,会不会有奇完全数存在呢?如果存在,它必须大于10^300。至今无人能回答这些问题。尽管没有发现奇完全数,但是当代数学家奥斯丁·欧尔证明,若有奇完全数,则其形式必然是12^p+1或36^p+9的形式,其中p是素数。在10^300以下的自然数中奇完全数是不存在的。
另外,如果存在奇完全数,则它们必能表示p^2*q的形式,除6外的偶完全数亦有此性质。

5计算方法编辑

推导公式

大数学家欧拉曾推算出完全数的获得公式:如果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.PASCAL程序 判断 A~ B 区域内的完全数为
program wanquanshu;
var i,a,b:longint;
function wanquanshu(i:longint):boolean;
var sum,k:longint;
begin
sum:=1;
for k:= 2 to i div 2 do
if i mod k=0 then sum:=sum+k;
if i=sum then wanquanshu:= true
else wanquanshu:=false;
end;
begin
repeat
readln(a,b);
until (a>0) and (b>0) and (b>a);
for i:= a to b do
if wanquanshu(i) then writeln(i);
end.
2.利用FreeBasic编程求n以内完全数
DIM AS INTEGER I,J,S
FOR I=1 TO 10000
S=0
FOR J=1 TO I\2
IF I MOD J=0 THEN S=S+J
NEXT J
IF S=I THEN PRINT I,
NEXT I
SLEEP
END
3.利用pascal编程求n以内完全数
program bill02;
var m,n,y,i,j,s,ss,z:longint;
a:array[1..10000] of integer;
begin
readln(m,n);
for i:=m to n do
begin
z:=0;
fillchar(a,sizeof(a),0);
s:=2;
ss:=1;
y:=i;
while y<>0 do
begin
if y mod s=0 then
begin
ss:=ss+1;
a[ss]:=s;
y:=y div s;
end
else
s:=s+1;
end;
for j:=1 to ss do
z:=z+a[j];
if z=i then writeln(i);
end;
end.
4.利用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
5.利用C语言编程求1000以内完全数
#include "stdio.h"
void main()
{
int j,k,sum = 0;
for(k=2;k<=1000;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf("%d ",k);
}
}
6.利用java语言编程求1000以内完全数
public class PerfectNumber {
public static void main(String[] args){
for(int i=2;i<1000;i++){
int sum=0;
//查找因数
for(int j=1;j<i;j++){
if(i % j==0){
sum += j;
}
if(sum==i)
System.out.println(i);
}
}
}
7.利用python语言编程求N以内完全数
def perfect(N):
"""各个真约数的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。
"""
perfectNumber=[]
for i in range(5,N):
sum1 = 0
for j in range(1,i//2+1):
if i%j == 0:
sum1 += j
if sum1 == i:
perfectNumber.append(i)
return perfectNumber
8.利用c++语言编程求1000以内完全数
#include <iostream>
  using namespace std;
  int main ()
  { int i,j,m;
  
  for(i=1;i<=1000;i++){
  for(j=1,m=0;j<i;j++){
  while(i%j==0){
  m=m+j;
  
  

  break;
  }
  }
  if(i==m){
  cout<<i<<" "<<"its factors are ";
  for(j=1;j<m;j++){
  while(m%j==0){
  cout<<j<<',';
  break;
  }
  }
  cout<<endl;
  }
  }
  
  }
  
9.利用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;
}
10.c#/*完美数推算*/
  int 因子和 = 0;
  foreach (var 自然数 in Enumerable.Range(2, 10000))
  {
  因子和 = 0;
  foreach (var 真约数 in Enumerable.Range(1, 自然数 - 1))
  if (自然数 % 真约数 == 0) 因子和 += 真约数;
  if (因子和 == 自然数)
  Console.WriteLine(自然数);
  }

6梅森素数编辑

定义

古希腊数学家欧几里得在名著《几何原本》中证明了素数有无穷多个,并论述完全数时提出:如果2^P-1是素数(其中指数P也是素数),则2^(P-1)(2^P-1)是完全数。瑞士数学家和物理学家欧拉证明所有的偶完全数都有这种形式。因此,人们只要找到2^P-1型素数,就可以发现偶完全数了。数学界将2^P-1型素数称为“梅森素数”(Mersenne prime),因为法国数学家和法兰西科学院奠基人梅森在这方面的研究成果较为卓著。梅森素数貌似简单,但探究难度却极大。它不仅需要高深的理论和纯熟的技巧,而且还需要进行艰巨的计算。到2013年2月6日为止,人类仅发现48个梅森素数。
值得提出的是:在梅森素数的基础研究方面,法国数学家鲁卡斯和美国数学家雷默都做出了重要贡献;以他们命名的“鲁卡斯-雷默方法”是目前已知的检测梅森素数素性的最佳方法。此外,中国数学家和语言学家周海中给出了梅森素数分布的精确表达式,为人们寻找梅森素数提供了方便;这一研究成果被国际上命名为“周氏猜测”。

梅森素数表

序号
p
(2^p-1)的位数
发现时间
发现者
1
2
1
(无从考究)
(无从考究)
2
3
1
(无从考究)
(无从考究)
3
5
2
(无从考究)
(无从考究)
4
7
3
(无从考究)
(无从考究)
5
13
4
1461
热矩斯/卡托迪
6
17
6
1588
卡托迪
7
19
6
1588
卡托迪
8
31
10
1750
欧拉
9
61
19
1883
普沃茨米/瑟勒科夫
10
89
27
1911
泡瓦斯
11
107
33
1913
泡瓦斯
12
127
39
1876
卢卡斯
13
521
157
Jan,30,1952
罗宾逊
14
607
183
Jan,30,1952
罗宾逊
15
1279
386
Jun,25,1952
罗宾逊
16
2203
664
Oct,7,1952
罗宾逊
17
2281
687
Oct,9,1952
罗宾逊
18
3217
969
Sep,8,1957
瑞瑟卢
19
4253
1281
Nov,3,1961
科威兹
20
4423
1332
Nov,3,1961
科威兹
21
9689
2917
May,11,1963
吉尼斯
22
9941
2993
May,16,1963
吉尼斯
23
11213
3376
Jun,2,1963
吉尼斯
24
19937
6002
Mar,4,1971
土库曼
25
21701
6533
Oct,30,1978
罗勒/尼克罗
26
23209
6987
Feb,9,1979
罗勒/尼克罗
27
44497
13395
Apr,8,1979
尼勒讯/萨罗温萨
28
86243
25962
Sep,25,1982
萨罗温萨
29
110503
33265
Jan,28,1988
孔快特/威勒斯
30
13204939751Sep. 20, 1983萨罗温萨
31
216091
65050
Sep,6,1985
萨罗温萨
32
756839
227832
Feb,19,1992
萨罗温萨/嘉矩
33
859433
258716
Jan,10,1994
萨罗温萨/嘉矩
34
1257787
378632
Sep,3,1996
萨罗温萨/嘉矩
35
1398269
420921
Nov,12,1996
阿忙瓜得/GIMPS
36
2976221
895832
Aug,24,1997
士班士/GIMPS
37
3021377
909526
Jan,27,1998
罗兰/GIMPS
38
6972593
2098960
Jun,1,1999
纳烟/GIMPS
39
13466917
4053946
Nov,14,2001
迈克尔/GIMPS
40
20996011
6320430
Nov,17,2003
迈克尔/GIMPS
41
24036583
7235733
May,15,2004
左式/GIMPS
42
25964951
7816230
Feb,18,2005
马特林/GIMPS
43
30402457
9152052
Dec,15,2005
可提斯/GIMPS
44
32582657
9808358
Sep,4,2006
可提斯/GIMPS
45
37156667
11185272
Aug,23,2008
史密斯/GIMPS
46
43112609
12978189
Sep,6,2008
汉斯迈克尔/GIMPS
47
42643801
12837064
2009
无从考究
48
57885161
17425170
Jan,25,2013
可提斯/GIMPS

已发现的完全数

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 X (2^42643801-1)
48 ……2^57885160 X (2^57885161-1)
由于后面数字位数较多,例子只列到12个,第13个有314位。
到第39个完全数有25674127位数,据估计它以四号字打出时需要一本字典大小的书。
0 0