使用C语言求N以内的所有完数

前情提要:

完数的定义:即所有因数(不包括本身)之和为自己的。如:6的因数是1 2 3,因为1 + 2 +3 = 6所以6是一个完数,不多叨叨,直接上代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int i,N,j, sum;	//i表是N以内的可能完数,N表示范围的最大值,j表示可能的因数,sum表示因数求值
  	scanf("%d", &N);//输入范围
	printf("%d以内的完数为:", N);
	sum = 0;//对sum初始化
	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <i; j++)
		{
			if (i % j == 0)
			{
  				sum += j;
			}
		}
		if (sum == i)//判断是否为完数
			printf("%5d", sum);
		sum = 0;//对sum初始化,否则会是原先的sum值
	}
	return 0;
}

求点赞


版权声明:本文为qimou14原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。