找出1000以内所有的完数,并输出其因子
时间: 2024-12-13 11:26:00 浏览: 6
一个数如果等于它的所有正因数(除了自身以外)相加的和,那么这个数就被称为完数(Perfect Number)。比如6,因为1+2+3=6,所以6是一个完数。
要找出1000以内的所有完数及其因子,我们可以编写一个C程序来完成这个任务。以下是一个简单的示例代码:
```c
#include <stdio.h>
// 函数定义:检查一个数是否为完美数
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
if (i != num / i) { // 避免重复因子
sum += i;
sum += num / i;
} else {
sum += i; // 如果i == num/i,则直接加上
}
}
}
return sum == num;
}
// 主函数,遍历并打印1000以内的完数及它们的因子
void findPerfectNumbersAndFactors() {
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("Number: %d\n", i);
printf("Factors: ", i);
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
}
int main() {
findPerfectNumbersAndFactors();
return 0;
}
```
这段代码首先定义了一个`isPerfect`函数,用于检查一个数是否是完美数。然后,在`findPerfectNumbersAndFactors`函数里,我们遍历1到1000之间的每一个数,如果它是完美数,就打印出来,并列出它的所有因子。
运行此程序后,你会看到1000以内所有的完数及其因子。
阅读全文