Python学习:有趣游戏,打印10000以内的完全数

什么是完全数

在西方,自然数6就是一个备受宠爱的数字。有人认为,6是属于美神维纳斯的,它象征着美满的婚姻;也有人认为,宇宙之所以这样完美,是因为上帝创造它时花了6天时间等等。中国人对6的宠爱,也是很有说法的;例如“六六大顺”“六畜兴旺”“六谷丰登”“六朝金粉”“六合同风”“身怀六甲”“眼观六路”……不一而足。

在数学领域,6是第一个完全数,也是最小的完全数。所谓完全数(又称完美数或完备数),是一种特殊的自然数;它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如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。公元前6世纪的古希腊数学家、哲学家毕达哥拉斯是最早探究完全数的人,他已经知道6和28这两个自然数是完全数了。

到了公元前3世纪,古希腊数学家欧几里得在其名著《几何原本》中首次给出了寻找完全数的方法,被数学界誉为欧几里得定理:如果2P-1是素数(其中指数P也是素数),则2(P-1)(2P-1)是完全数。2P-1型的素数被数学界称为梅森素数,它是以17世纪法国数学家马林·梅森命名的。

1730年,被称为“世界四大数学家雄狮”之一的瑞士数学家欧拉,时年23岁,正值风华茂盛。他出手不凡,给出了一个出色的定理:每一个偶完全数都是形如2(P-1)(2P-1)的自然数,其中P是素数,2P-1也是素数。这是欧几里得定理的逆定理。有了欧几里得和欧拉两个互逆定理,公式2(P-1)(2^P-1)就成为判断一个偶数是不是完全数的充要条件了。

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。

如何利用Python打印10000以内的完全数

请添加图片描述

"""
功能:输出完全数
作者:zwh
日期:2021年11月9日
"""

for n in range(1, 10000):
    sum = 0
    for i in range(1, n):
        if n % i == 0:
            sum += i
    if sum == n:
        print(n, end='\t')

注:’10000‘可以改变大小,但是数越大,运算速度越慢。

Guess you like

Origin blog.csdn.net/zl202111/article/details/121425700