卓绝罕有的完美数
什么是完美数
我们都知道,6是“溜”的谱音,用于表达人们对于超常能力的感叹。但许多人不知道的是,6也是罕有的完美数!
所谓完美数,又称完全数或完备数,它的所有真因子(除了自身以外的约数)之和必须恰好等于它本身。
例如:
6
=
1
+
2
+
3
6=1+2+3
6=1+2+3
28
=
1
+
2
+
4
+
7
+
14
28=1+2+4+7+14
28=1+2+4+7+14
完美数是一种极其特殊及罕有的自然数,目前仅仅发现了51个。而我们这一篇文章的任务正是输出 1000 以内的所有完美数。
算法思路
先根据完美数的概念厘清一下思路:
(1)需要有一个2~1000的外循环,以及一个小于当前数的因子内循环。
(2)需要有一个判断是否为真因子的i语句,若不是,则判断下一个数,若是,则计入num 中,再判断下一个数,如下图所示。
代码实现
# 1000以内的完美数
for i in range(1, 1001):
# num 为当前数的所有真因子之和
num=0
# 把每个小于当前数的数字都遍历一遍
for j in range(1,i):
# 如果可以整除
if i%j ==0:
#全部相加
num +=j
# 如果真因子之和等于其自身,则说明其是完美数
if i == num:
print (i)
输出结果
揭秘完美数的规律与特性:从三角形数到调和数
是的,1000 以内只有3个完美数,而第4 个完美数是 8128,接近于10000,至于第5 个完美数,可就不止 100 000 级别了,而是335 503 36。显而易见,如果用上面这几行代码遍历到千万级以上的数字,则你的计算机一定会“卡死”,因此,要想写出一个高效率的算法,就必须要全面、透彻地了解完美数的“性格”和“脾气”。
完美数是很有意思的,可以说是集“万干韵律”于一身。大概读者也发现完美数的一些规律了吧。
(1) 所有的完美数都是以6或8结尾,若以8结尾,则肯定是以28结尾。
当然,这个规律只是限于我们目前所知的51个完全数,并不代表以后的完美数仍符合这一规律。宇宙是浩瀚无垠的,我们并无法证明,当追溯到无限大时是否会出现不一样的事物。
(2)所有的偶完美数都是三角形数。例如:
6
=
1
+
2
+
3
6=1+2+3
6=1+2+3
28
=
1
+
2
+
3
+
.
.
.
+
6
+
7
28=1+2+3+...+6+7
28=1+2+3+...+6+7
496
=
1
+
2
+
3
+
.
.
.
+
30
+
31
496=1+2+3+...+30+31
496=1+2+3+...+30+31
8128
=
1
+
2
+
3
+
.
.
.
+
126
+
127
8128=1+2+3+...+126+127
8128=1+2+3+...+126+127
.
.
.
...
...
那么,三角形数是什么?古希腊著名数学家毕达哥拉斯把一定数目的石子按照等距离的形式排成了一个等边三角形,并称其为三角形数,如1、3、6、10、15、21等,如下图所示
(3)所有的偶完美数都是调和数。例如:
1
1
+
1
2
+
1
3
+
1
6
=
2
\frac{1}{1}+\frac{1}{2}+\frac{1}{3}+\frac{1}{6}=2
11+21+31+61=2
1
1
+
1
2
+
1
4
+
1
7
+
1
14
+
1
28
=
2
\frac{1}{1}+\frac{1}{2}+\frac{1}{4}+\frac{1}{7}+\frac{1}{14}+\frac{1}{28}=2
11+21+41+71+141+281=2
1
1
+
1
2
+
1
4
+
1
8
+
1
16
+
1
31
+
1
62
+
1
124
+
1
248
+
1
496
=
2
\frac{1}{1}+\frac{1}{2}+\frac{1}{4}+\frac{1}{8}+\frac{1}{16}+\frac{1}{31}+\frac{1}{62}+\frac{1}{124}+\frac{1}{248}+\frac{1}{496}=2
11+21+41+81+161+311+621+1241+2481+4961=2
.
.
.
.
.
.....
.....
那么,调和数又是什么呢?估计很多人都不知道。
若一个正整数n的所有因子的调和平均数是整数,则称 n为调和数(Harmonicnumber),又称为欧尔数(Ore number)。
注意:调和数绝不等于调和级数!
调和级数与调和平均数
问题来了,那调和级数是什么?调和平均数又是什么呢?
n个正数的调和平均数是指其倒数算数平均数的倒数。是不是很绕?其实很简单,即
x
1
,
x
2
,
.
.
.
.
,
x
n
x_1,x_2,....,x_n
x1,x2,....,xn的调和平均数为:
1
1
x
1
+
1
x
2
+
.
.
.
+
1
x
n
\frac{1}{\frac{1}{x_1}+\frac{1}{x_2}+...+\frac{1}{x_n}}
x11+x21+...+xn11
按上述定义,两个数a 和b的调和平均数为:
2
a
b
a
+
b
\frac{2ab}{a+b}
a+b2ab
而只有满足“从第二项起,每一项都是前后两项的调和平均数”条件的一组数据,才可以被称为调和级数。这可是相当严苛的条件。
探秘完美数:规律、特性与意义
(4)所有的偶完美数都可以表达为2的连续正整数次幂之和,而且项数为连续质数。
例如:
6
=
2
1
+
2
2
6=2^1+2^2
6=21+22
28
=
2
2
+
2
3
+
2
4
28=2^2+2^3+2^4
28=22+23+24
496
=
2
4
+
2
5
+
2
6
+
2
7
+
2
8
496=2^4+2^5+2^6+2^7+2^8
496=24+25+26+27+28
8128
=
2
6
+
2
7
+
2
8
+
2
9
+
2
10
+
2
11
+
2
12
8128=2^6+2^7+2^8+2^9+2^{10}+2^{11}+2^{12}
8128=26+27+28+29+210+211+212
33
550
336
=
2
12
+
2
13
+
2
14
+
.
.
.
.
.
+
2
23
+
2
24
33\,550\,336=2^{12}+2^{13}+2^{14}+.....+2^{23}+2^{24}
33550336=212+213+214+.....+223+224
(5)除6以外的完美数都可以表示成连续奇立方数之和,并呈规律地增加。例如:
28
=
1
3
+
3
3
28=1^3+3^3
28=13+33
496
=
1
3
+
3
3
=
5
3
=
7
3
496=1^3+3^3=5^3=7^3
496=13+33=53=73
8128
=
1
3
+
3
3
+
5
3
+
.
.
+
1
5
3
8128=1^3+3^3+5^3+..+15^3
8128=13+33+53+..+153
33
550
336
=
1
3
+
3
3
+
5
3
+
.
.
.
+
12
5
3
+
12
7
3
33\,550\,336=1^3+3^3+5^3+...+125^3+127^3
33550336=13+33+53+...+1253+1273
(6)除6以外的完美数,将其各位数字辗转相加必等于1。例如:
28
:
2
+
8
=
10
,
1
+
0
=
1
28:2+8=10,1+0=1
28:2+8=10,1+0=1
496
:
4
+
9
+
6
=
19
,
1
+
9
=
10
,
1
+
0
=
1
496:4+9+6=19,1+9=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
8128:8+1+2+8=19,1+9=10,1+0=1
8128:8+1+2+8=19,1+9=10,1+0=1
33
550
336
:
3
+
3
+
5
+
5
+
0
+
3
+
3
+
6
=
28
,
2
+
8
=
10
,
1
+
0
=
1
33\,550\,336:3+3+5+5+0+3+3+6=28,2+8=10,1+0=1
33550336:3+3+5+5+0+3+3+6=28,2+8=10,1+0=1
(7)除6以外的完美数,被3除余1,被9除余1,还有1/2被27除余1。例如:
28
3
=
9.....1
,
28
9
=
3....1
,
28
27
=
1....1
\frac{28}{3}=9.....1,\frac{28}{9}=3....1,\frac{28}{27}=1....1
328=9.....1,928=3....1,2728=1....1
496
3
=
165....1
,
496
9
=
55.....1
\frac{496}{3}=165....1,\frac{496}{9}=55.....1
3496=165....1,9496=55.....1
8128
3
=
2709......1
8128
9
=
903....1
,
8128
27
=
301....1
\frac{8128}{3}=2709......1\frac{8128}{9}=903....1,\frac{8128}{27}=301....1
38128=2709......198128=903....1,278128=301....1
除此之外,完美数还有许多含义,是一类“备受宠爱”的数字。公元前6世纪,毕达哥拉斯发现完美数时说:“6象征着完满的婚姻以及健康和美丽,因为它的部分是完整的,并且其和等于自身。”也有人认为:“6和 28是上帝创造世界时所用的基本数字,因为上帝创造世界用了6天,28则是月亮绕地球一周的日数。”而圣奥古斯丁说:“6这个数本身就是完美的,并不是因为上帝造物用了6天;事实上,正是因为这个数是一个完美数,所以上帝才能在6天之内把一切事物都造好了。”在我国文化洪流中也能看到“6”和“28”的应用。例如,六谷、六畜、六常、六朝、六甲、二十八星宿等,以及“眼观六路,耳听
八方”等成语。
注意:在西方文化中,“666”指魔鬼和撒旦,是不吉利的象征,可别乱用了。
千百年来,正是完美数的卓绝罕有,使得许多数学家及数学爱好者对它情有独钟,一路孜孜不倦地追寻。直到公元前3世纪,欧几里得提出了规范寻找完美数的方法,也就是我们所熟知的欧几里得定理:如果
2
p
−
1
2^p-1
2p−1是素数(其中指数p也是素数),则
2
p
−
1
(
2
p
−
1
)
2^{p-1}(2^p-1)
2p−1(2p−1)是完美数。
2
p
−
1
2^p-1
2p−1型的素数被数学界称为梅森素数,它是以17世纪法国数学家马林•梅森的名字命名的。到1730年,被称为“世界四大数学家”之一的23岁瑞士数学家欧拉提出:每一个偶完美数都是形如
2
p
−
1
(
2
p
−
1
)
2^{p-1}(2^p-1)
2p−1(2p−1)的自然数,其中p是素数,
2
p
−
1
2^p-1
2p−1也是素数。这简直与欧几里得定理相得益彰。欧几里得定理与欧拉定理的组合,成为寻找完美数的有力依据。
欧几里得定理可知:只要找到一个梅森素数,就可以找到一个与其对应的完美数。因此,目前为止人们只发现了51 个梅森素数和51个完全数。目前最大的完美数是在“互联网梅森素数大搜索”(GIMPS)项目中发现的,为
2
82
589
932
(
2
82
589
933
−
1
)
2^{82\,589\,932}(2^{82\,589\,933}-1)
282589932(282589933−1)。该数有49 724 095位,如果用普通字号将它打印下来,其长度将超过200km!
不过有些尴尬的是,完美数似乎并没有什么实际用处,只是反映了自然数的某些基本规律而已。但这不就是科学吗?探究自然规律,揭开未知之谜,或许有一天人们会发现完美数的实用价值。
然而,当今数论领域还有两大著名难题:
- 是否有无穷个完美数?
- 是否存在着奇完美数?
法国哲学家、数学家、物理学家笛卡儿曾公开预言:“能找出的完美数不是很多,好比人类一样,要找一个完人亦非易事。”
毕达哥拉斯学派成员尼克马修斯也说:“正如美的、卓绝的东西是罕有的、容易计数的,而丑的、坏的东西却滋蔓不己一样,盈数和亏数非常之多且杂乱无章,它们的发现也毫无规律可言,但是完美数则易于计数而且顺理成章。”