Problem E: 调用函数,求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 fs(int n);
int main(){
int m,n,j,f;
while(scanf("%d%d",&m,&n)!=EOF){
f=1;
for(j=m;j<=n;j++){
if(fs(j)==j){
if(f==1){
printf("%d",j);
f=0;
}
else{
printf(" %d",j);
}
}
}
printf("\n");
}
return 0;
}
int fs(int n){
int i,sum=0;
for(i=1;i<n;i++){
if(n%i==0){
sum+=i;
}
}
return sum;
}
总结
1、还是注意不同代码块之间的变量定义和赋值。
2、对格式的处理要灵活。