完全數是除本身外所有因數之和等于該數的數。
早在公元2世紀末,人們已經找到了前4个完全數:6,28,496,8128。
直到13世紀,時隔千年,才有人找到了第5個完全數,你知道它是多少嗎?
輸入說明 :
<無>
輸出說明 :
輸出第5個完全數。
程式碼 :
#include<stdio.h>
#include<math.h>
int main()
{
long i,j,test,sum,sqr,temp;
for(i=11;;i++)
{
test = (1<<(i-1))*((1<<i)-1);//wiki公式
sum = 1;
sqr = sqrt(test)+1;
for(j=2;j<sqr;j++)
{
if(test%j == 0)
{
temp = test / j;
sum = sum + j + temp;
if(j == temp)
sum = sum - j;
}
}
sum = sum - test;
if(sum==0)
{
printf("%d\n",test);
break;
}
}
return 0;
}
http://zerojudge.tw/ShowProblem?problemid=d290
沒有留言:
張貼留言