使用c语言c11标准,编写函数fun(int n),它的功能是:计算正整数n 的所有因子(1 和n 除外) 之和作为函数值返回
时间: 2024-12-24 13:38:15 浏览: 21
在C语言C11标准中,你可以通过遍历从2到n-1的所有整数,并检查它们是否是n的因子来实现这个功能。以下是`fun()`函数的一个简单示例:
```c
#include <stdio.h>
#include <stdbool.h> // 引入bool类型用于条件判断
// 函数声明
int fun(int n);
// 判断是否为因子
bool is_factor(int divisor, int num) {
return num % divisor == 0;
}
// 主函数
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (n <= 0) {
printf("输入错误, 只能计算正整数的因子。\n");
return -1;
}
int sum = fun(n);
printf("给定数字%d的所有因子(除1和本身外)的和是: %d\n", n, sum);
return 0;
}
// 计算因子和的函数实现
int fun(int n) {
int result = 0; // 初始化结果为0
for (int i = 2; i * i <= n; i++) { // 遍历从2到sqrt(n)
if (is_factor(i, n)) {
result += i; // 如果i是因子,累加到结果上
if (n / i != i) { // 如果i不是n的完全平方根,则再加一次n/i
result += n / i;
}
}
}
return result;
}
```
阅读全文