c语言一个数如果恰好等于它的所有因子(不包括它自己)之和,就称其为完数,比如6=1+2+3。输出n之内的全部“完数”,n从键盘上输入。这里保证输入的n值是正整数,读者无需考虑。 输出中,每个数占的宽度为6,
时间: 2024-12-10 13:34:39 浏览: 8
在 C 语言中,我们可以编写一个程序来找出 n 以内的所有完数。首先,我们需要创建一个函数来检查一个数是否是完数。然后,我们遍历从 1 到 n 的每一个数,对每个数调用这个函数,如果是完数,则输出结果。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果还有另一个因子
sum += num / i;
}
}
}
return sum == num && num > 1; // 检查是否不包括自身
}
int main() {
int n;
printf("请输入一个正整数 n: ");
scanf("%d", &n);
printf("n以内的完数有:\n");
for (int i = 1; i <= n; i++) {
if (isPerfect(i)) {
printf("%6d", i); // 宽度为6,左对齐
printf("\n"); // 结果后换行
}
}
return 0;
}
```
在这个代码中,`isPerfect` 函数用于判断一个数是否是完数,`main` 中的循环遍历并打印出符合条件的数。
阅读全文