Python 练习实例19
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析:请参照程序Python 练习实例14。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from sys import stdout
for j in range(2,1001):
k = []
n = -1
s = j
for i in range(1,j):
if j % i == 0:
n += 1
s -= i
k.append(i)
if s == 0:
print j
for i in range(n):
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
Python 100例
等一个人
252343465@qq.com
参考方法:
#!/usr/bin/env python # -*- coding: utf-8 -*- for i in range(1, 1001): sum = 0 for j in range(1, i): if i % j == 0: sum += j if sum == i: print(i)等一个人
252343465@qq.com
swordzjc
hfut229@163.com
Python3 测试实例
#!/usr/bin/python3 list2 = [] for x in range(1, 1001): list1 = [] for i in range(1, int(x / 2) + 1): if x % i == 0: list1.append(i) if x == sum(list1): print(x) print(list1) list2.append(x) print("共计有%d个完数"%(len(list2)))swordzjc
hfut229@163.com