求解c语言中对大数据的处理
求1到99999999任意区间内的完美数(6, 28, 496, 8128, 33550336)#include<stdio.h>
int main()
{
double n, m;
double sum;
while (scanf("%lf%lf", &n, &m) && n!= 0 && m != 0)
{
for (double i = n;i <= m;i++)
{
sum = 0.0;
for (double j = 1.0;j < i;j++)
{
if ((int)i%(int)j == 0)sum += j;
}
if (sum == i)printf("%.0lf ", i);
}
printf("\n");
}
return 0;
}
我用double处理过20的阶乘,可以正常输出,可是这里33550336无法输出,不知道为什么。除了用double外,我想不出用什么来处理这种大数据了,求解答!