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

程序分析:请参照程序Python 入门经典100实例:实例14。

程序源代码:# -*- coding: UTF-8 -*-

from sys import stdout

for j in range(2,1001):

k = []

n = -1

#把j 赋值给s

s = j

for i in range(1,j):

if j % i == 0:

n += 1

# 判断s是否是完数

s -= i

k.append(i)

if s == 0:

print j

for i in range(n):

# 把k列表转换为字符串

stdout.write(str(k[i]) )

stdout.write(' ')

print k[n]

输出结果:6

1 2 3

28

1 2 4 7 14

496

1 2 4 8 16 31 62 124 248

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐