pythonPython爬虫作业

python  求1000以内的完全数

2017-05-25  本文已影响2466人  高杆python

题目 :求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]

上一篇下一篇

猜你喜欢

热点阅读