perfect.py 524 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11
"""
找出1~9999之间的所有完美数
完美数是除自身外其他所有因子的和正好等于这个数本身的数
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14

Version: 0.1
Author: 骆昊
Date: 2018-03-02
"""
import math

12
for num in range(2, 10000):
J
jackfrued 已提交
13
    result = 0
J
jackfrued 已提交
14 15
    for factor in range(1, int(math.sqrt(num)) + 1):
        if num % factor == 0:
J
jackfrued 已提交
16 17 18 19
            result += factor
            if factor > 1 and num // factor != factor:
                result += num // factor
    if result == num:
J
jackfrued 已提交
20
        print(num)