要判断一个数是否等于它的因子相加之和,可以遍历该数的因子,
并计算它们的和。如果该和与原数相等,则该数满足条件。
如:28=1+2+4+7+14
def isSelfAdditive(n):
total = 0
for i in range(1, n//2 + 1): #遍历1到n//2的所有整数
if n % i == 0: #判断是否是n的因子
total += i #计算所有因子的和
return total == n #判断和是否等于自加数n,若等于返回True
# 测试代码
num = int(input("请输入一个数: "))
if isSelfAdditive(num):
print(f"{num} 是自加数。")
else:
print(f"{num} 不是自加数。")