#?!/usr/bin/python27
創(chuàng)新互聯(lián)公司主營(yíng)嵐縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā),嵐縣h5微信小程序開發(fā)搭建,嵐縣網(wǎng)站營(yíng)銷推廣歡迎嵐縣等地區(qū)企業(yè)咨詢
#?coding:?utf8
'''
計(jì)算完美數(shù)(完全數(shù))
'''
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])])
運(yùn)行結(jié)果:
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]
結(jié)果:
[6,?28,?496]
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)
完全數(shù)
如果一個(gè)數(shù)恰好等于它的因子之和,則稱該數(shù)為“完全數(shù)”,又稱完美數(shù)或完備數(shù)。
例如:第一個(gè)完全數(shù)是 6,它有約數(shù) 1、2、3、6,除去它本身 6 外,其余 3 個(gè)數(shù)相加,1+2+3=6。
第二個(gè)完全數(shù)是 28,它有約數(shù) 1、2、4、7、14、28,除去它本身 28 外,其余 5 個(gè)數(shù)相加,1+2+4+7+14=28。
#include stdio.hint fun(int n) /*函數(shù)用來判斷一個(gè)數(shù)是否是完全數(shù).是就返回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是否相等.如果相等就說明這個(gè)數(shù)是完全數(shù).返回1.
return 1;
return 0; //否則返回0;
}int main()
{
int i,t;
/*輸入一個(gè)整數(shù),判斷這個(gè)數(shù)是否是完全數(shù)*/
scanf("%d", t);
if( fun( t ) )
printf( "Yes\n" );
else
printf( "No\n" );/*輸出1000以內(nèi)所有完全數(shù)*/
for(i = 1; i = 1000; i++)
{
if( fun( i ) )
printf("%d\t",i);
}
printf("\n");
return 0;
}