Python编程题3--找出1000以内的完全数

2020-08-15  本文已影响0人  wintests

题目

如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。例如:
第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
请按照从小到大的顺序输出 1000 以内的完全数,并用"逗号"分隔输出结果

实现思路

注意:使用 join() 拼接列表时,列表中的元素不能是 int 类型。

代码实现

def demo():
    result = []
    for i in range(1, 1000):
        sum = 0
        for j in range(1, i):
            if i % j == 0:
                sum += j
        if sum == i:
            result.append(str(i))
    return ",".join(result)

print("1000以内的完全数有:{}".format(demo()))

更多Python编程题,等你来挑战:Python编程题汇总(持续更新中……)

上一篇 下一篇

猜你喜欢

热点阅读