C语言实现1到n完数的求解

本程序使用C语言编写,目标是求1到n范围内的完数。完数是指其所有真因数之和等于它本身的数(例如:6的真因数是1, 2, 3,1+2+3=6)。程序结构简洁易懂,适合C语言初学者学习。

完数的定义

完数是一个自然数,等于它的所有真因数之和。例如,6是一个完数,因为它的真因数是1、2、3,1+2+3=6。

C语言代码实现

#include 

int sum_of_factors(int num) {
    int sum = 0;
    for (int i = 1; i <= num / 2; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    return sum;
}

int main() {
    int n;
    printf("请输入n的值:");
    scanf("%d", &n);
    printf("1到%d的完数有:
", n);
    for (int i = 1; i <= n; i++) {
        if (sum_of_factors(i) == i) {
            printf("%d 
", i);
        }
    }
    return 0;
}

代码说明

  1. sum_of_factors函数用于计算某个数的真因数之和。
  2. main函数中,通过遍历1到n,调用sum_of_factors判断是否为完数。

程序可以输出1到n范围内所有的完数,帮助C语言初学者更好地理解完数的概念和如何编写简单的算法。

txt 文件大小:1.25KB