C语言实例—一个数如果恰好等于它的因子之和,这个数就称为完数。(gcc编译)

1.题目

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

2.代码

#include<stdio.h>

int main()
{
	int i, j, sum;      /* i表示要判断的数,j表示因子,sum表示因子之和*/ 

	for (i = 2; i <= 1000; i++)
	{
		sum = 1;
		for (j = 2; j <= i / 2; j++)
			if (i%j == 0)         /* 判断i能否被j整除,能的话j即为因子  因子不包括自身 */ 
				sum += j;

		if (sum == i)    /* 判断此数是否等于因子之和 */ 
		{
			printf("%d its factors are 1, ", i);    /* 输出该数 */ 

			for (j = 2; j <= i / 2; j++)
				if (i%j == 0)printf("%d, ", j);    /* 输出因子 */ 

			printf("\n");
		}
	}

	return 0;
}

3.编译、运行

gcc demo_6.7.c -o demo_6.7
./demo_6.7

4.结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_22847457/article/details/84820240