求大神帮我这编程看看有什么问题?????

#include<stdio.h>
int factorsum(int number);
int main(void)
{
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("%d\n",i);
}
return 0;
}

int factorsum(int number)
{
int i,sum;
sum=0;
for(i=1;i<=number;i++){
if(number%i==0)
sum=sum+i;
}
return sum;
}

第1个回答  2013-12-08
只能输出0和1,因为if(factorsum(i)==i的问题,简单的数学。。追问

那要怎么才能输入其他数字呢

第二道题的

追答

把factorsum()函数改为下面那个试试看。
int factorsum(int number)
{
int j,sum;
sum=1;
for(j=2;j<=number/2;j++)
{
if(number%j==0)
sum+=(number/j);
}
return sum;
}

相似回答