完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
 第一个完全数是6 6的因子包括1; 2; 3
 第二个完全数是28 28的因子是1; 2; 4; 7; 14
 求10000以内的所有完数,并打出每个完全数的因子
要求:将因子分解的过程在函数中完成,在主函数中进行输出

详细实现代码如下,望采纳

#include <stdio.h>
#include <stdlib.h>

// 定义一个函数,用来判断一个数是否为完全数
int is_perfect_number(int n) {
    // 定义一个变量,用来保存因子的和
    int sum = 0;

    // 循环枚举n的因子
    for (int i = 1; i < n; i++) {
        // 如果i是n的因子,则将它累加到sum中
        if (n % i == 0) {
            sum += i;
        }
    }

    // 判断sum是否等于n,如果是则返回1,否则返回0
    return sum == n;
}

// 主函数
int main(int argc, char* argv[]) {
    // 循环枚举1~10000之间的数
    for (int i = 1; i <= 10000; i++) {
        // 如果i是完全数,则输出它的因子
        if (is_perfect_number(i)) {
            printf("%d的因子包括:", i);

            // 循环枚举i的因子
            for (int j = 1; j < i; j++) {
                // 如果j是i的因子,则输出j
                if (i % j == 0) {
                    printf("%d ", j);
                }
            }

            // 换行
            printf("\n");
        }
    }

    // 程序结束
    return 0;
}