【Python】如何判断和寻找完美数

完美数是指其所有真因子之和等于自身的自然数,如6和28。这篇内容介绍了完美数的概念,并展示了一个简单的Python算法来检查一个数是否为完美数。截至2018年,已知的完全数共有51个,它们在数学研究中占有一定地位。
摘要由CSDN通过智能技术生成

卷首语:什么叫完美数?

完美数,也叫完全数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。截至2018年,相关研究者已经找到51个完全数。
(以上资料来源:百度百科

1 编程思路

首先,要知道,完全数的真因数之和等于自身。

然后,就有了算法。
Python:

def check(num):
    n, result = 0, False
    # 2. 初始化算法变量 (check函数的局部变量)
    if (str(num)[-1] != '6' and str(num)[-1] != '8'):
        return False
    # 4~5. 先决条件
    for i in range(1, num):
        # print('第', i, '步: ', end = '')
        if (num % i == 0):
            # print(n, '+', i, '=', (n + i))
            n += i
            if (n > num):
                break
            else:
                # print(——);
                pass
    if (n == num):
        result = True
    return result
    # 取消第8, 10, 15行代码的注释可显示过程
    # 算法(共18行)

后面待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值