思路:对输入范围内每个数求因数,再对因数求和比较,如果是完全数,存在一个空列表里,最后输出列表长度

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