完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6(6=1+2+36=1+2+3)和28(28=1+2+4+7+1428=1+2+4+7+14)就是完美数。完美数有很多神奇的特性,有兴趣的可以自行了解。

1
2
3
4
5
6
7
8
9
10
11
import math

for num in range(1, 10000):
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:
print(num)