0
点赞
收藏
分享

微信扫一扫

C语言>>一个数如果恰好等于它的因子之和,这个数就称为“完数”。比如:6=1+2+3,因此6是完数。编程求出1000以内的完数。

Raow1 2022-03-11 阅读 36

使用工具:

Dev-c++ 5.11

解题思路:

该数最小为2,不超过1000;我们可以写个双循环,外层循环表示可能存在的完数的集合,内层循环表示可能存在的因子的集合,且因子最大也只能是完数的一半;在内层循环中 ,代码应当实现如果一个数(外层的)和另一个数(内层的)取余数恒为零,就记录下另一个数的累加。当退出内层循环时,判断累加的数的大小是否等于外层循环的数,即可得出完数。

参考代码:

#include<stdio.h>
int main()
{
	int num,yz,sum;
	for(num=2;num<1000;num++)
	{
		sum=1;
		for(yz=2;yz<=num/2;yz++)
		{
			if(num%yz==0)
			{
			 sum+=yz;
	       	}
		}
	
	if(sum==num)
	{
		printf("%d 的因数有1,",num);
		for(yz=2;yz<=num/2;yz++)
		{
			if(num%yz==0)
			{
				printf("%d, ",yz);
			}
		
		}
		printf("\n");
	  }
	
    }
	return 0;
}

运行结果:

 

举报

相关推荐

用C语言,输出1000以内的完数。

Java | 1000以内的完数查找

0 条评论