C语言:一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3。编程找出1000以内的所有完数。

分析:

    在主函数 main 中,程序首先定义三个整型变量 m、s 和 i,并用于计算和判断完数。然后使用 printf 函数输出提示信息。

    接下来,程序使用 for 循环结构,从 2 到 999 遍历所有的数。对于每个遍历到的数 m,程序将变量 s 初始化为 0。

    然后,程序使用另一个 for 循环结构,从 1 到 m-1 遍历所有小于 m 的数。对于每个遍历到的数 i,程序通过 if 条件判断语句,判断 i 是否是 m 的因子(即 m 能被 i 整除)。如果判断为真,就将 i 加到 s 中。

    在第一个 for 循环结束后,程序通过 if 条件判断语句,判断 s 是否等于 m。如果判断为真,即 s 等于 m,说明 m 是完数。此时,程序使用 printf 函数输出该完数,并使用第三个 for 循环输出该完数的因子。

    最后,程序使用 printf 函数输出换行符,表示输出结束。

代码:

#include<stdio.h>
int main()
{
	int m,s,i;
	for(m=2;m<1000;m++)
	{
		s=0;
		for(i=1;i<m;i++)
			if((m%i)==0) s=s+i;
			if(s==m)
			{printf("%d,its factors are",m);
			for(i=1;i<m;i++)
				if(m%i==0) printf("%d ",i);
				printf("\n");
			}
	}
	return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/m0_63002183/article/details/134627395