完数问题,求从n开始的前2个完数,请问以下哪里出错了

输入整数 n(n<50),求从 n 开始的前 2 个完数,以下程序有一处错误,试改正

img

再每次计算完之后,需要将s重新初始化为0。


#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
if __name__ == '__main__':
    i = 30
    g = 0
    s = 0
    while g < 2:
        for j in range(1, i):
            if i % j == 0:
                s = s + j
        if s == i:
            print(i)
            g = g + 1
        s = 0
        i = i + 1

img

调试了下,需要先初始化s为0,哈哈做的慢了一点

i = int(input("n="))
g = 0
s = 0
while g < 2:
    s = 0
    for j in range(1,i):
        if i%j == 0:
            s = s+j
    if s == i:
        print(i)
        g = g + 1
    i = i + 1
i = int(input("n = "))
g = 0
while g < 2:
    s = 0
    for j in range(1,i):
        if i%j == 0:
            s = s+j
    if s == i:
        print(i)
        g = g + 1
    i = i + 1

如有用请采纳

望采纳



i = int(input("n="))
g = 0
while g < 2:
    s = 0
    for j in range(1,i):
        if i%j == 0:
            s = s + j
    if s == i:
        print(i)
        g += 1
    i += 1