6
回答
用python3.1求出1000以内的完数,代码如下,但是无结果输出!
开发十年,就只剩下这套Java开发体系了   

哪里出问题了?请帮忙解答!谢谢

举报
liguang311
发帖于4年前 6回/1K+阅
共有6个答案 最后回答: 4年前
建议改一下学习方法: 1、一点点来。先求10以内的,看是不是6。再求30以内的,看是不是28。 2、结果出现错误时,加打印把可疑的变量在过程中的变化显示出来。 3、对语言和环境稍熟悉后,学习使用调试工具。 上面的代码就差一点点,把一个关键变量打出来,马上就知道问题所在了

while i !=1:

    for ii in range(2, i):

        if i % ii == 0:

            i=i//ii

            s = s +ii

    // 如果这个if 不能满足,i是不是就是不变?然后就进入死循环了??

刚做了个玩玩,小弟也学python没多久哈,多指教
res = []  #结果
for i in range(1,30):     #取1-30
    t = []                     #临时数组,保存约数用
    x = i                     #无法解释的变量,被除用
    for ii in range(1,x):         #循环小于x的数
        if (i % ii) == 0:          #如果i/ii 的余数为0,视为基数
            t.append(ii)           #添加到基数变量列表
    if sum(t) == i:        #如果列表内的数值相加=除数
        a.append(i)        #添加到基数列表
print a                      #这是一条神奇的语句。

写得不好哈~


顶部