完全數是除本身外所有因數之和等于該數的數。
早在公元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
沒有留言:
張貼留言