输入2 个正整数m 和n(m≥1,n≤1 000),输出m n 之间的所有完数,完数就是因子和与它本身相等的【问题描述】输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 01:14:59

输入2 个正整数m 和n(m≥1,n≤1 000),输出m n 之间的所有完数,完数就是因子和与它本身相等的【问题描述】输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相
输入2 个正整数m 和n(m≥1,n≤1 000),输出m n 之间的所有完数,完数就是因子和与它本身相等的
【问题描述】
输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number 的因子和。
例如,factorsum(12)的返回值是16(1 +2 +3 +4 +6)。
【输入输出样例1】(下划线部分为键盘输入,其余部分为程序输出)
Input m: 1
Input n: 100
    1    6   28        (输出格式控制符为:%5d)       
【输入输出样例2】(下划线部分为键盘输入,其余部分为程序输出)
Input m: 1
Input n: 500
    1    6   28  496   (输出格式控制符为:%5d)
【样例说明】
输入提示符后要加一个空格.例如“Input m: ”,其中“:”后要加一个且只能一个空格.
英文字母区分大小写.必须严格按样例输入输出.


# include<stdio.h>
int factorsum(int number);
int main()
{
int m,n,i,number;
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;
for(k=1;k<number;k++)
{
t=number%k;
if(t==0)
sum=sum+k;
}
return sum;


怎么改!

输入2 个正整数m 和n(m≥1,n≤1 000),输出m n 之间的所有完数,完数就是因子和与它本身相等的【问题描述】输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相
# include
int factorsum(int number);
int main()
{
int m,n,i;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=m;i