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

卷首语:什么叫完美数?

完美数,也叫完全数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是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行)

后面待更新

posted @ 2021-11-27 12:29  Admin--002  阅读(514)  评论(0编辑  收藏  举报
返回头部 赞助支持