求完全数的python语句

Python013

求完全数的python语句,第1张

# !/usr/bin/python27

# coding: utf8

'''

计算完美数(完全数)

'''

for n in range(1,1000):

    nlist = [i for i in range(1,n) if n%i == 0]

    if sum(nlist) == n:

        print ''.join([str(n),'=','+'.join([str(n) for n in nlist])])

运行结果:

6=1+2+3

28=1+2+4+7+14

496=1+2+4+8+16+31+62+124+248

或者这样:

print [n for n in range(1,1000) if sum([i for i in range(1,n) if n%i == 0]) == n]

结果:

[6, 28, 496]

a=range(1,101)

b=range(1,101)

result=[]

for i in a:

  tmp=[]

  for k in b:

      if k<i:

          if not i%k:

              tmp.append(k)

          else:

              continue

      else:

          break

  count=0

  for m in tmp:

      count=count+m

  if count==i:

      result.append(i)

  else:

      continue

print(result)