完数定义:如果一个数等于它的因子之和
例如:6=1+2+3
编程工具:codeblocks
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main() {int sum;//所有因子的的和int arr[20] = { 0 };//声明一个数组用来存储所有的因子int n;//for循环i自增从1到1000——大循环for (int i = 1; i <= 1000; i++) {sum = 0;n = 0;//小循环找到一个i所有的因子和因子和for (int j = 1; j < i; j++) {if (i % j == 0) {sum += j;//统计因子只和//将i的因子存入数组arr[n] = j;n++;}}if (i == sum) {//如果因子之和等于这个数printf("%d : ", i);//打印出完数//将完数的因子打印出for (int m = 0; m < n; m++) {printf(" %d", arr[m]);}printf("\n");}}return 0;
}
结果如下: