python練習(xí)題22


完全數(shù)
完全數(shù)(Perfect number),又稱完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))的和,恰好等于它本身。
性質(zhì)1:所有的完全數(shù)都是三角形數(shù)。(一定數(shù)目的點或圓在等距離的排列下可以形成一個等邊三角形,這樣的數(shù)被稱為三角形數(shù)。)
輸入格式:
在一行中輸入一個 正整數(shù) N。
輸出格式:
判斷正整數(shù) N 是否是完全數(shù)。如果是完全數(shù)則輸出所有因子和的等式,例如6=1+2+3
,并輸出其由星號組成的三角形數(shù),詳見樣例
。
輸入樣例1:
6
輸出樣例1:
6=1+2+3?
*?
**?
***
輸入樣例2:
7
輸出樣例2:
7不是完全數(shù)
答:
a=[]
def ws(n):
? ? s=0
? ? for i in range(1,n):
? ? ? ? if n%i==0 and n>i:
? ? ? ? ? ? s+=i
? ? ? ? ? ? a.append(i)
? ? if s==n:
? ? ? ? print(f"{n}={a[0]}",end="")
? ? ? ? for i in range(1,len(a)):
? ? ? ? ? ? print(f"+{a[i]}",end="")
? ? ? ? return True
? ? else:
? ? ? ? print(f"{n}不是完全數(shù)")
? ? return False
s1='*'
n=int(input())
if n!=0:
? ? if(ws(n)):
? ? ? ? print()
? ? ? ? for i in range(1,len(a)+1):
? ? ? ? ? ? print(f'{s1*i}')
else:
? ? print(f"{n}不是完全數(shù)")

