输出1000内的所有完数(C语言)

输出1000内的所有完数

编译环境VS2017

一个数如果恰好等于它的因子之和,这个数则称为“完数”,例如,6的因子为1,2,3,而6=1+2+3 。
要求按下面格式输出:
6 its factors are 1,2,3

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main() {
	int sum;
	int arr[20] = { 0 };
	int n;
	for (int i = 1; i < 1000; ++i) {
		sum = 0;
		n = 0;
		for (int j = 1; j < i; ++j) {
			if (i % j == 0) {
				sum += j;//统计因子只和
				arr[n] = j;
				++n;
			}
		}
		if (i == sum) {//如果因子之和等于这个数
			printf("%d its factors are ", i);
			for (int m = 0; m < n; ++m) {
				printf("%d", arr[m]);
				if (m < n - 1) {
					printf(",");
				}
			}
			printf("\n");
		}
	}
	system("pause");
}

运行结果如下:

在这里插入图片描述


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