1. 程式人生 > >呼叫函式,求m-n之間的所有完數

呼叫函式,求m-n之間的所有完數

Description
自定義函式factorsum(number),它的功能是返回number的因子和,如factorsum(12)的返回值是16(1+2+3+4+6)。 在主函式中,輸入兩個正整數m和n(m>=1, n<=1000),呼叫factorsum函式,輸出m-n之間的所有完數,完數就是因子和與它本身相等的數。

Input
多組測試資料,每組輸入兩個正整數m和n。

Output
輸出m-n之間的所有完數,"%d "形式輸出,但最後一個數後面沒有空格。

Sample Input
10 100
100 500
10 900
Sample Output
28
496
28 496

#include<stdio.h>
int factorsum(int n)
{
int i,s=0;
for(i=1;i<n;i++)
{
if(n%i0)
s+=i;
}
return s;
}
int main()
{
int j,a,b,flag;
while(scanf("%d%d",&a,&b)!=EOF)
{
flag=1;//flag=1放這裡使每次迴圈時flag都為1,即輸出從首個格子開始
for(j=a;j<=b;j++)
{
if(j
factorsum(j))
{
if(flag!=0)
{
printf("%d",j);
flag=0;
}
else
printf(" %d",j);
}
}
printf("\n");
}
return 0;
}