一个数是奇妙数,当且仅当所有小于它的约数加起来比它大,例如12除本身外的约数有1,2,3,4,6,它们的和为16,因此12是奇妙数。给定整数N,求不超过N的奇妙数有多少个。

N=int(input())
l=[int(i) for i in range(1,N+1)]
b=0
for m in l:
for n in range(1,m):
if m%n==0:
b+=n
if b l.remove(m)
print(len(l))
各位,这是我的算法,改了很多次,觉得思路没错,但程序结果不对,怎么修改呢?

N=int(input())
l=[int(i) for i in range(1,N+1)]

res = []
for m in l:
    b = 0
    for n in range(1, m):
        if m % n == 0:
            b += n
    if b > m:
        res.append(m)
print(len(res))