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;
}
函数详解:
sumOfProperDivisors 函数:
- 参数:接受一个正整数
num
。 - 返回值:返回
num
的所有真因数之和。 - 实现:使用循环从 1 开始遍历到
num
的一半(num/2
),对每个能整除num
的数累加到sum
中,这些数即为num
的真因数。
- 参数:接受一个正整数
main 函数:
- 主函数用于从用户输入获取一个正整数,调用
sumOfProperDivisors
函数计算并输出其真因数之和。
- 主函数用于从用户输入获取一个正整数,调用
示例运行:
假设输入 num
为 12
:
12
的真因数为1, 2, 3, 4, 6
,它们的和为1 + 2 + 3 + 4 + 6 = 16
。
注意事项:
- 如果
num
为1
,则其真因数之和为0
,因为1
本身没有真因数。
这样,通过上述函数,你可以计算任意正整数的真因数之和并输出结果。