資訊內(nèi)容
Python基礎(chǔ)練習(xí)實(shí)例19(找完數(shù))
題目:編程找出1000以內(nèi)的所有完數(shù)(一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為"完數(shù)"。例如6=1+2+3)。
程序分析:找出每一個(gè)數(shù)的所有因子,然后計(jì)算這些因子的和是否等于這個(gè)數(shù);也可以用這個(gè)數(shù)減去它的所有因子,看結(jié)果是否等于0,那么這個(gè)數(shù)就是完數(shù)。
程序源代碼:實(shí)例(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]
結(jié)果:
6
1 2 3
28
1 2 4 7 14
496
1 2 4 8 16 31 62 124 248
本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。
