python实现找出1000以内的所有完美数
目录
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]