这个'怎么搞,同志们看一下
问题描述:
输入2 个正整数m 和n(m>=1,n<=1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number 的因子和。
例如,factorsum(12)的返回值是16(1 +2 +3 +4 +6)。
答
# include
int factorsum(int anumber);
int main()
{
int m,n,i; printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=m;i<=n;i++)
{
if(factorsum(i)==i)
printf("%5d",i);
}
printf("\n");
return 0;
}
int factorsum(int number)
{
int k,t,sum=0;
if(number==1){ sum =1;
}else{
for(k=1;k<number;k++)
{
t=number%k;
if(t==0)
sum=sum+k;
}}
return sum;
}