作业帮 > 英语 > 作业

用python算完全数之和的方法?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:英语作业 时间:2024/08/12 10:31:04
用python算完全数之和的方法?

这是我们的作业:

编写程序,编写一个程序求 2~20000 内的所有完全数之和.(一个数的所有因子之和为其本身的数称为完全数 http://baike.baidu.com/view/19074.htm?fr=aladdin#5_1)


我的程序是这样的,但是不知道为什么错了算不出来啊

求高手讲解一下我的错误在哪里,要怎么改正?有没有更好的方法?

我的思路是这样的


用python算完全数之和的方法?
def main(n,high):
    x=0
    perfectnum=[]
    while n<=high:
        total=0
        for t in range(n//2,0,-1):
            if n%t==0:
                total+=t
                if total>n or (total<n and t==1):
                    break
        else:
            x+=n
            perfectnum.append("%d"%n)
        n+=1
    return (perfectnum,x)
if __name__=='__main__':
    perfectnum,total=main(2,20000)
    print("%s = %d"%(' + '.join(perfectnum),total))
再问: 不好意思,你的程序里面有很多东西我都没学,看不太懂
能不能请你批改一下我的程序呢?
再答: 你的程序完全不对,没法改