龙空技术网

Python经典习题:找出1000 以内的所有“完数”,如6=1+2+3

科技研究员猴哥 72

前言:

眼前同学们对“python完数”大约比较着重,大家都想要剖析一些“python完数”的相关知识。那么小编也在网上汇集了一些有关“python完数””的相关文章,希望大家能喜欢,我们快快来学习一下吧!

Python

题目

一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如6=1+2+3,编程找出1000 以内的所有完数。

python实现:

if __name__ == '__main__':

for n in range(1,1000):

f=[] #声明一个list用于存储所有因子,判定下一个数时,清空

sumn=0 #每次判定下一个数是否为完数前,清空

for i in range(1,int(n/2)+1): #因子只有在数值一半以内出现,PS:“/"结果是浮点数,range函数参数必须为整数,所以强制转换

if n%i==0 : #表明i是因子

f.append(i) #保存因子

for j in range(0,len(f)):

sumn+=f[j] #求出所有因子之和

if sumn==n:

print('%3d = %3d'%(sumn,f[0]),end='') #end=‘’表示可将多个print结果在同行打印

for k in range(1,len(f)):

print(' + %3d' % f[k],end='')

print('')

运行结果:

>>>

==================== RESTART: D:/PythonTraining/wanshu.py ====================

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248

每日更新python经典练习题,助你从小白进阶到高手

标签: #python完数 #python例题1000道要记吗 #一千以内的素数编程 #python因子之和等于完数 #python因子之和完数