急!!!!输入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;
}

怎么改!!!

第1个回答  2013-04-25
# include<stdio.h>
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<=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;
}追问

额···改了哪里?

追答

printf("Input m: "); :后面加了个空格

追问

可是我还比标准答案少了个1···········

追答

额 没看到还有个1 改了下,应该好了
# 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<=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;
}

本回答被提问者采纳

输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数
int n,x,y;cout<<"输入n:"<<endl;cin>>n;cout<<"输入x:"<<endl;cin>>x;cout<<"输入y:"<<endl;cin>>y;for(i=1;i<=n;i+=2){ wanshu+=pow(i,3);if(wanshu==1){ continue;} if(wanshu>=x&&wanshu<=y)cout<<"n以内的完数:"<<wanshu<<"\\t"<<endl;} system("pau...

...n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等...
急!!输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求 输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,factorsum(12)的返回值是16...

...输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数_百度...
include <stdio.h>int factorsum(int n){int sum,i;for(i=1,sum=0;i<n;++i){if(n%i==0)sum+=i;}return sum;}int main(void){int m,n;while(scanf("%d , %d",&m,&n)==2){for(;m<n;++m){if(m==factorsum(m)){printf("%d ",m);}}printf("\\n");}return 0;} ...

...输入2个正整数m和n(m≥1,n≤10 000),输出m ~n 之间所有的Fibonacci...
int m,n,k,i;int fib(int i);printf("Input m: ");scanf("%d",&m);printf("Input n: ");scanf("%d",&n);for(k=m;k<=n;k++)for(i=1;fib(i)<=n;i++){ if(k==fib(i))printf("%.d ",k);} return 0;} int fib(int i){ if(i==1)return 1;if(i==2)ret...

输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci数...
public static void main(String args[]) { int ri, repeat;int i, m, n;long f;Scanner in = new Scanner(System.in);repeat = in.nextInt();for (ri = 1; ri <= repeat; ri++) { m = in.nextInt();n = in.nextInt();for (int j = 1;; j++) { int fibJ=fib(j...

C语言:输出m ~n 之间所有的Fibonacci 数
输入2个正整数m和n(m≥1,n≤10 000),输出m ~n 之间所有的Fibonacci数。Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。定义并调用函数fib(n),它的功能是返回第n项Fibonacci 数。例如,fib(7)的返回值是13。【输入形式】从... 展开 峰★印 ...

...输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci...
public static void main(String args[]) { int ri,repeat; int i, m, n; long f; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++) { m=in.nextInt(); n=in.nextInt(); for(i=1;;i++) { i...

简单C语言程序
1.输入2个正整数m和n,求其最大公约数和最小公倍数 include include int main(){ int m,n,p,q,s,r;printf("请输入两个正整数;m,n\\n");scanf("%d,%d",&m,&n);s=m*n;if(m<n){ p=m;m=n;n=p;} printf("%d\\t%d\\n",m,n);\/*按从大到小输出m,n *\/ while(n!=0...

1、 输入2个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,分 ...
printf("请输入m:"); scanf("%d",&m); printf("请输入n:"); scanf("%d",&n); printf("请输入%d个数据:",m*n); for(i=0;i<m;i++) { s=0; for(j=0;j<n;j++) { scanf("%d",&d); s+=d; } printf("第%d行的和为%d\\n",i+1,s); }} 本回答由提问者推荐 举报| 答案纠错...

C语言问题
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 2.程序源代码: main() { int a,b,num1,num2,temp; printf("please input two numbers:\\n"); scanf("%d,%d",&num1,&num2); if(num1 { temp=num1; num1=num2; num2=temp; } a=num1;b=num2; while...

相似回答