用C语言编程 程序功能:输入正整数 m 和 n(1≤m≤n≤10000),输出 m 到 n 之间的 所有完数(完数就是因子和与它本身相等的数)。要求定义并调用函数factorsum(i),计算并返回整数i的因子和。例如,factorsum(12)的返回值是16
时间: 2024-01-21 10:04:10 浏览: 82
输出n以内的所有素数 c语言:找出N以内的所有素数
好的,我明白了你的问题。下面是你所需要的 C 语言代码:
```c
#include <stdio.h>
int factorsum(int n) {
int i, sum = 0;
for (i = 1; i < n; i++) {
if (n%i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int m, n, i;
printf("请输入 m 和 n:");
scanf("%d%d", &m, &n);
printf("%d 到 %d 之间的完数有:", m, n);
for (i = m; i <= n; i++) {
if (i == factorsum(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
在这个程序中,我们定义了一个 `factorsum` 函数,用于计算一个正整数的因子和。接下来,在 `main` 函数中,我们读入用户输入的 `m` 和 `n`,然后遍历从 `m` 到 `n` 的所有正整数,判断每个数是否为完数,如果是,则输出它。
希望这个程序能够解决你的问题!
阅读全文