python函数求完全数 用python求完美数

python怎么计算完美数

不知道你的完美数是怎么定义的,原先写了一个判断完美数,并输出小于输入值N的所有完美数的,稍微修改了下。

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为奉节企业提供专业的成都网站建设、网站建设,奉节网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

#!/usr/bin/python

# -*- coding:utf-8 -*-

# @Time    : 2018/6/16 16:45

# @File    : NthPerfectNumber.py

"""

输出第N个完美数

"""

def is_perfect(anum):

"""判断一个数是不是完美数"""

assert anum  0, '完美数是大于0的整数'

ll = []

num = 0

for i in xrange(1, anum):

if anum % i == 0:

ll.append(i)

num = sum(ll)

if num == anum:

return True

else:

return False

def nthPerfectNumber(n):

m = 0

t = 1

temp = []

while m  n:

if is_perfect(t):

temp.append(t)

m += 1

t += 1

else:

t += 1

else:

return temp[n - 1]

if __name__ == '__main__':

nths = int(raw_input(u'请输入需要返回的第N个完美数:'))

print u'第{0}个完美数是:{1}'.format(nths, nthPerfectNumber(nths))

python显示输入数字之内的完全数

所谓完全数是指,如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。

例如:第一个完全数是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

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

a = []

for i in range(1, 1000):

s = 0

for j in range(1, i):

if i % j == 0 and j i:

s += j

if s == i:

print(i)

a.append(i)

print("1000以内的完全数为: %s" % a)

运行结果如图所示

用python算完全数之和的方法?

def main(n,high):

x=0

perfectnum=[]

while n=high:

total=0

for t in range(n//2,0,-1):

if n%t==0:

total+=t

if totaln or (totaln and t==1):

break

else:

x+=n

perfectnum.append("%d"%n)

n+=1

return (perfectnum,x)

if __name__=='__main__':

perfectnum,total=main(2,20000)

print("%s = %d"%(' + '.join(perfectnum),total))

如何在python用函数求出2至100之间的完全数?

a=range(1,101)

b=range(1,101)

result=[]

for i in a:

tmp=[]

for k in b:

  if ki:

      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)

求完全数的python语句

# !/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]


当前名称:python函数求完全数 用python求完美数
链接分享:http://ybzwz.com/article/hjghes.html