求完整数!~
完全数又称为完美数,因为它有如下特别的性质:例如6,它有约数1, 2, 3(不算它自身在内),这三个约数的和刚好也是它本身。现在就要你找出这些数输入
多组测试数据,一组里只有一行,就是一个n(1<=n<=5e18)
输出
1到n的所有完全数,一个数占一行
样例输入:
30
样例输出:
6
28
下面是我写的程序,可是没有结果,我也不知道哪里有问题,请多指教!
#include<stdio.h>
int main()
{
__int64 n,i,j,sum;
while((scanf("%lld",&n))!=EOF)
{
for(i=2;i<=n;i++)
{
sum=i;
for(j=1;j<=i/2;i++)
{
if((i%j)==0)
sum-=j;
}
if(sum==0)
printf("%lld\n",i);
}
}
return 0;
}