一个数如果恰好等于它的因子之和,这个数就称为“完数”。
判断一个数是否完数的代码如下:
#!/usr/bin/envpython #coding:utf-8 deffactors(n): #return[iforiinrange(1,n/2+1)ifn%i==0] #如果仅仅是为了得到因数,可以用上面的 #如果是配合下面完全数,最好使用下面的。因为在下面少循环一次,1肯定是任何整数的因数 return[iforiinrange(2,n/2+1)ifn%i==0] #找出某个数n以内的所有完全数,即在[1,n]内(含n) defperfect(n): #从上面的factors中得到的因数列表中,少1,因此在求因数和的时候,要把1加上。 return[iforiinrange(2,n+1)if(sum(factors(i))+1)==i] if__name__=="__main__": printperfect(1000) printfactors(1000)原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容