C语言:请编写函数,求正整数的真因数之和。

在 C 语言中,可以编写一个函数来计算正整数的真因数之和。所谓真因数是指除了该数本身以外的所有因数。

下面是一个求正整数真因数之和的函数示例:

c
#include <stdio.h> // 函数声明 int sumOfProperDivisors(int num); int main() { int num; printf("请输入一个正整数:"); scanf("%d", &num); // 调用函数计算真因数之和并输出 int sum = sumOfProperDivisors(num); printf("正整数 %d 的真因数之和为:%d\n", num, sum); return 0; } // 函数定义:计算正整数的真因数之和 int sumOfProperDivisors(int num) { int sum = 0; // 因数从1开始遍历到 num/2 for (int i = 1; i <= num / 2; ++i) { if (num % i == 0) { sum += i; // i 是 num 的一个真因数 } } return sum; }

函数详解:

  1. sumOfProperDivisors 函数

    • 参数:接受一个正整数 num
    • 返回值:返回 num 的所有真因数之和。
    • 实现:使用循环从 1 开始遍历到 num 的一半(num/2),对每个能整除 num 的数累加到 sum 中,这些数即为 num 的真因数。
  2. main 函数

    • 主函数用于从用户输入获取一个正整数,调用 sumOfProperDivisors 函数计算并输出其真因数之和。

示例运行:

假设输入 num12

  • 12 的真因数为 1, 2, 3, 4, 6,它们的和为 1 + 2 + 3 + 4 + 6 = 16

注意事项:

  • 如果 num1,则其真因数之和为 0,因为 1 本身没有真因数。

这样,通过上述函数,你可以计算任意正整数的真因数之和并输出结果。