c语言编程题 一个数如果恰好等于它的因子之和,这个数就称为完数。例

c语言编程题
一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数。编程序找出1000之内所有的完数,并按下列格式输出其因子:6 its factors are 1 2 3

如下图所示:

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

    二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-06
先看运行截图:

输出格式和题目要求完全一样
#include <stdio.h>
int isws(int a);
main(){
int i=2,count,s=0;
for(;i<1000;i++){
count = isws(i);
if(count){
int a = 1;
s = 0;
printf("%d its factors are ",i);
for(a;a<=i/2;a++){
if(i%a==0){
printf("%d",a);
s++;
if(s < count) printf(","); //用来判断后面是否还有因子,没有因子就换行
else printf("\n");
}
}
}
}
return 0;
}

int isws(int a){ //判断是否是完数,如果是返回因子的个数
int i=2,sum=1,count=1;
for(i;i<=a/2;i++){
if(a%i==0) {
sum+=i;
count++;
}
}
if(sum == a) return count;
else return 0;
}

代码简单,主要是思路本回答被网友采纳
相似回答