用C语言编写请编写一个函数fun,它的功能是:以空格间隔输出[n,m]区间的所有完全数(完全数指真因子之和等于其本身)。 如程序运行时输入5和100,则屏幕显示:5 1006 28
时间: 2024-03-21 18:41:53 浏览: 98
好的,请看下面的代码实现:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
return 1;
} else {
return 0;
}
}
void fun(int n, int m) {
for (int i = n; i <= m; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
}
int main() {
int n = 5, m = 100;
fun(n, m);
return 0;
}
```
函数 `isPerfect` 接受一个整数 `num`,如果它是完全数则返回 1,否则返回 0。在 `fun` 函数中,我们对于区间 `[n, m]` 中的每一个数 `i`,判断它是否是完全数,如果是就输出它。
最后在 `main` 函数中调用 `fun` 函数并传入区间的左右边界即可。
阅读全文