python实现找出1000以内的所有完美数

579 阅读1分钟

1、题目描述

完美数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。第一个完美数是6。
输入:(无)
输出: [6, 28, 496]

2、代码实现

#!/usr/bin/env python # -*- coding:utf-8 -*-import math def fun():    list = []    k = 1000    for num in range(1, k + 1):        result = 0        for factor in range(1, int(math.sqrt(num)) + 1):            if num % factor == 0:                result += factor                if factor > 1 and num // factor != factor:                    result += num // factor        if result == num and num > 1:            list.append(num)    return list if __name__ == '__main__':    print(fun())

3、运行结果

[6, 28, 496]

今天分享就到这,如果你对Python感兴趣,欢迎加入我们【python学习交流裙】,免费领取学习资料和源码。