找出10000以內的完美數
阿新 • • 發佈:2020-12-14
技術標籤:Python
題目:
完美數又稱為完全數或完備數,它的所有的真因子(即除了自身以外的因子)的和(即因子函式)恰好等於它本身。例如:6(
6
=
1
+
2
+
3
6=1+2+3
6=1+2+3)和28(
28
=
1
+
2
+
4
+
7
+
14
28=1+2+4+7+14
28=1+2+4+7+14)就是完美數。
解答:
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)