求完数,并输出每个完数累积值

img

img


求完数,希望大家能指正一下,结果不正确,一直是非0返回,输出结果和加号前有一个空格。

def primes(n):
    res = [1]
    for i in range(2,n):
        if n%i==0:
            res.append(i)
    return res

m,n = map(int, input().split())
for i in range(m,n+1):
    if sum(primes(i))==i:
        print(f'{i} = {" + ".join(str(j) for j in primes(i))}')

代码复制出来呗

def calwanshu(inputstr: str):
    l = inputstr.split(',')
    m, n = int(l[0]), int(l[1])
    s = ''
    dic = defaultdict(list)
    for i in range(m, n + 1):
        for j in range(1, i):
            if i % j == 0:
                dic[i].append(j)

    for k, v in dic.items():
        if int(k) == sum(v):
            for p in v:
                s = s+str(p)
            s = " + ".join(map(str,v))
            print("{} = ".format(k), s)

    print("None")

if __name__ == '__main__':
    calwanshu(input("输入取数范围:"))