题解 | #完全数计算#
完全数计算
http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
思路:对输入范围内每个数求因数,再对因数求和比较,如果是完全数,存在一个空列表里,最后输出列表长度
while True:
try:
a = int(input())
res = []
for j in range(1, a+1):
b = [] #b是对每个j都需要单独定义的,如果定义在之前,会累积
for i in range(1, j//2+1):#注意永远小于等于它的一半
if j % i == 0:
b.append(i)
s = sum(b)
#print(b)
if s == j:
res.append(j)
print(len(res))
except:
break