下面是一种实现办法,供参考:
1、首先使用input获取一个整数,同时用int()函数转为整数;
2、然后遍历1到这个整数-1之间的所有数,用求余的方法找到其所有真因子, 存入列表,同时累加到和中;
3、最后打印结果,根据真因子之和和这个整数的关系来判断是否是完美数(也叫完全数),如果是的,则打印式子,如果不是打印'None'。
参考链接:
完全数_百度百科
num = int(input()) #获取一个整数输入
sum=0 #记录这个整数的真因子之和的变量
factors=[] #存储这个整数的所有真因子
for i in range (1,num): #遍历1到num-1的所有的数,寻找num的所有真因子
#https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E6%95%B0/370913?fromtitle=%E5%AE%8C%E7%BE%8E%E6%95%B0&fromid=871560&fr=aladdin
if num%i==0: #如果num对i求余为0,说明是其真因子
sum+=i #把这个真因子累加到和sum中
factors.append(i) #把这个真因子加入列表中
#打印结果
if sum==num: #如果这个数的真因子之和等于这个数,说明是完全数,打印式子
print(str(num)+"=",end="") #打印前面的完全数和等号
length = 0
for j in factors: #打印后面的真因子之和的式子
print(str(j),end="")
length=length+1
if length<len(factors):
print("+",end="")
else : #如果这个数的真因子之和不等于这个 数,则说明不是完全数,打印'None'
print("None")