某自然数除它本身之外的所有因子之和等于该数,则该数被称为完数。请输出1000以内的完数。

想知道答案每一步是在干嘛😂

img


or i in range(2,1001):  #在2-1000内循环
    s = i  #将i赋值给s
    for j in range(1,i):  #在1-i内循环
        if i%j == 0:  
            s -=j   #如果i能整除j,就s=s-j
    if s == 0:
        print(i) #如果s=0,输出i

比如说i循环到6,j循环1,2,3,4,5,i整除j的数是1,2,3,最后s = 6-1-2-3=0,输出i,也就是6,此时6就是完全数