所謂「完全數」(perfect number, 又稱「完美數」或「完備數」),是一些特殊的自然數:它所有的真因子 (即除了自身以外的因數) 的和,恰好等於它本身。
例如:第一個完全數是 6 ,它有因數 1、2、3、6,除去它本身 6 外,其餘 3 個數相加,1 + 2 + 3 = 6,恰好等於本身。第二個完全數是 28 ,它有因數1、2、4、7、14、28,
除去它本身 28 外,其餘 5 個數相加,1 + 2 + 4 + 7 + 14 = 28,也恰好等於本身。後面的數是 496、8128 ... 。
編寫一個程式,讀入一個正整數,並判別該整數是否為完全數。
# Perfect Number
def is_perfect(i):
sum = 0
for n in range(1,i//2+1):
if (i % n == 0):
sum += n
if (i == sum):
return True
else:
return False
i = int(input("Enter a positive integer number: "))
if (is_perfect(i)):
print("The number %d is a perfect number." % i)
else:
print("The number %d is not a perfect number." % i)
|
在此示例中,我們在提示 "Enter a positive integer number: " 時鍵入 6 ,得到以下結果
Enter a positive integer number: 6
The number 6 is a perfect number.
|
而如果我們在提示時鍵入 12 ,其結果則為
Enter a positive integer number: 12
The number 12 is not a perfect number.
|
|
|