python练习题22


完全数
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。
性质1:所有的完全数都是三角形数。(一定数目的点或圆在等距离的排列下可以形成一个等边三角形,这样的数被称为三角形数。)
输入格式:
在一行中输入一个 正整数 N。
输出格式:
判断正整数 N 是否是完全数。如果是完全数则输出所有因子和的等式,例如6=1+2+3
,并输出其由星号组成的三角形数,详见样例
。
输入样例1:
6
输出样例1:
6=1+2+3
*
**
***
输入样例2:
7
输出样例2:
7不是完全数
答:
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}不是完全数")
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}不是完全数")

