
正文
python函数求完全数 python完全数算法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在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)
相关问答
Q1: 完全数——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。
Q2: python编写函数,实现判断正整数n是否是完数。若是,函数返回True,否则返回Flase
#include stdio.hint fun(int n) /*函数用来判断一个数是否是完全数.是就返回1. 不是返回0*/
{
int i,sum = 0;
for(i=1;in;i++)
{
if(n % i == 0) //如果i是n的因子. 就将i累加到sum中.
sum = sum + i;
}
if(sum == n) //判断n和sum是否相等.如果相等就说明这个数是完全数.返回1.
return 1;
return 0; //否则返回0;
}int main()
{
int i,t;
/*输入一个整数,判断这个数是否是完全数*/
scanf("%d", t);
if( fun( t ) )
printf( "Yes\n" );
else
printf( "No\n" );/*输出1000以内所有完全数*/
for(i = 1; i = 1000; i++)
{
if( fun( i ) )
printf("%d\t",i);
}
printf("\n");
return 0;
}
Q3: 用Python编写程序,从键盘输入一个整数并判断该数的类别:其因数之和等于数字本身的数称为完全数?
import sys
theNum = input('请输入一个数:')
try:
theNum = int(theNum)
except ValueError:
print("请输入一个整数!")
sys.exit()
# 因子
divisor = 1
# 因子的和
divisors = 0
# 求因子的和
while divisor theNum:
if theNum % divisor == 0:
divisors += divisor
divisor += 1
if divisors == theNum:
print("{} 是完全数!\n".format(theNum))
else:
if divisors theNum:
print("{0} 是丰沛数!\n".format(theNum))
else:
print("{0} 是不足数!\n".format(theNum))
Q4: 求完全数的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]
Q5: 用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函数求完全数和python完全数算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






