程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,例如,6=1+2+3,其中1、2、3为因子,6为因子和。
输出使用以下语句:
printf("%d = 1", number);
printf(" + %d", factor);
printf("\n");
输入输出示例:括号内为说明
用c语言编写一个可以完成下面所说任务的程序
答案:1 悬赏:60 手机版
解决时间 2021-06-06 02:15
- 提问者网友:斑駁影
- 2021-06-05 09:34
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-06-05 10:57
#include <stdio.h>
void main()
{
int m,n,repeat,number,factor,i;
printf("Please input repeat:");
scanf("%d",&repeat);
printf("Please input m&n:");
scanf("%d%d",&m,&n);
for(i=m;i<=n; i++)
{
number = 0;
for(factor=1;factor<i;factor++) if(i%factor == 0)number = number + factor;
if(number == i)
{
printf("%d = 1", number);
for(factor=2;factor<i;factor++)if(i%factor == 0) printf(" + %d", factor);
number = 0;
printf("\n");
}
}
}
void main()
{
int m,n,repeat,number,factor,i;
printf("Please input repeat:");
scanf("%d",&repeat);
printf("Please input m&n:");
scanf("%d%d",&m,&n);
for(i=m;i<=n; i++)
{
number = 0;
for(factor=1;factor<i;factor++) if(i%factor == 0)number = number + factor;
if(number == i)
{
printf("%d = 1", number);
for(factor=2;factor<i;factor++)if(i%factor == 0) printf(" + %d", factor);
number = 0;
printf("\n");
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯