如果这个数想当大,因子相当多,怕sum存不了.
倚天照海花无数,流水高山心自知。
看看我这个,第二题:
#include "stdio.h"
int main()
{
long number;
int n;
int fact[30];
int fact_n=1,i,sqrt_n,sum=0;
printf("Input two data(<=500000):(s,n)");
scanf("%ld,%d",&number,&n);
fact[0]=1;
sqrt_n=sqrt(number);
for(i=2;i<=sqrt_n;i++)
{
if(number%i==0)
{
fact[fact_n]=i;
fact_n++;
}
}
printf("facts:");
for(i=0;i<fact_n;i++)
{
printf("%4d",fact[i]);
sum+=fact[i];
}
printf("\nThe sum is:%d",sum);
printf("\nThe result is:%d",sum%n);
}
按你说的改了一下:
#include "stdio.h"
int main()
{
long number;
int n;
int fact[30];
int fact_n=1,i,sqrt_n,result=1;
printf("Input two data(<=500000):(s,n)");
scanf("%ld,%d",&number,&n);
fact[0]=1;
sqrt_n=sqrt(number);
for(i=2;i<=sqrt_n;i++)
{
if(number%i==0)
{
result+=i;
fact[fact_n]=i;
fact_n++;
result%=n;
}
}
printf("The result is:%d",result);
}
[此贴子已经被作者于2007-3-18 22:03:58编辑过]