C语言编写一个函数fun,其功能是计算并返回n的所有因子(不包括1和自身)之和。
时间: 2024-12-15 09:20:35 浏览: 17
在C语言中,你可以编写一个名为`sum_factors`的函数来计算并返回给定整数n的所有因子(除了1和n本身)的和。下面是一个简单的函数实现示例:
```c
#include <stdio.h>
// 函数声明,用于计算因子和
int sum_factors(int n);
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
int result = sum_factors(num);
if (result != -1) {
printf("给定数字 %d 的所有因子和为 %d.\n", num, result);
} else {
printf("输入错误,只接受正整数.\n");
}
return 0;
}
// 计算因子和的函数
int sum_factors(int n) {
int sum = 0; // 初始化因子和为0
for (int i = 2; i <= n / 2; ++i) { // 只考虑小于等于n的一半,因为大于一半的因子会成对出现,比如6的因子有1, 2, 3, 6,其中1和6重复了
if (n % i == 0) { // 如果n能被i整除,则i是n的一个因子
sum += i; // 添加因子到总和中
}
}
// 返回结果,如果n是质数(只有一个因子1),则返回-1作为标记
if (sum == n && n > 1) {
return -1;
}
return sum;
}
```
阅读全文