python  求1000以内的完全数

题目 :求1000以内的完全数(如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。例如:第一个完全数是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。)


解题思路:

  1. for循环分别列出1000以内所有整数。
  2. 用每一个整数分别除以比他小的整数,若整除,则记为该整数因子,并将所有因子相加求和,求和后判断和这个整数是否相等,若相等则该整数是完全数。
  3. 定义一个空列表,用以储存1000以内的完全数。

解题代码:

    L=[]
    for i in range(1,1001):
      k=0
      for j in range(1,i):
        if (i%j==0):
          k+=j
      if i==k:
        L.append(i)
    print(L)

打印结果:
[6, 28, 496]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容