输出1000内的完数以及约数,用空格隔开。c语言
时间: 2024-10-29 20:12:59 浏览: 12
C语言经典实例 经典c程序100例
在 C 语言中,要输出1000以内所有的完美数(即一个数等于其所有正因子之和)及其约数,你可以编写如下的程序:
```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) {
if (i * i != num) {
sum += i + num / i;
} else {
sum += i;
}
}
}
return sum == num && num > 1;
}
// 主函数
int main() {
printf("完美数及约数:\n");
for (int i = 2; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d 的约数有:", i);
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
return 0;
}
```
这个程序首先定义了一个 `isPerfect` 函数,用于检查一个数是否为完美数。然后在主函数中遍历2到1000之间的每个数,如果它是完美数,就打印出它的约数。
运行此程序会输出1000以内所有的完美数及其约数,每行代表一个完美数及其对应的约数组合。
阅读全文