输出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版权协议,转载请附上原文出处链接和本声明。