你让事情变得比需要的更复杂。您需要一个嵌套循环来解决这个问题。循环遍历范围内的每个数字,将值x设置为0,每次找到一个等分的数字时,将其添加到x中。如果在内部循环的末尾,x==i,则会得到一个完美的数字并将其打印出来。如果你需要它在一个列表中,把它附加到你的列表中。您试图保存所有中间数,如果找到结果,就保存它。
for i in range(m,n+1): x = 0 for j in range(1,i): if i % j == 0: x += j if i == x: print(i)