一个数如果恰好等于它的因子之和,这个数就称为“完数”。用c语言编程找出1000之内的所有完数,并按照下面格式输出其因子。6 its factors are 1,2,3
时间: 2024-11-12 12:41:13 浏览: 37
在C语言中,我们可以编写一个函数来检查一个数是否为完数,并找出它的因子。以下是一个简单的程序,用于找到1000以内所有的完数并按要求输出:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfectNumber(int num) {
int sum = 1; // 初始化因子和为1,因为1总是每个正整数的因子
for (int i = 2; i * i <= num; i++) { // 只需检查到num的平方根即可
if (num % i == 0) {
if (i != num / i) { // 如果i不是num的本身,则加入因子
sum += i;
sum += num / i;
} else {
sum += i; // 如果i是num的本身,只加一次
}
}
}
return sum == num; // 检查因子之和是否等于原数
}
void printFactor(int num) {
printf("%d ", num); // 输出当前数
printf("its factors are: ");
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
printf("%d, ", i);
}
}
printf("\n");
}
int main() {
int limit = 1000;
for (int i = 2; i < limit; ++i) {
if (isPerfectNumber(i)) {
printFactor(i);
}
}
return 0;
}
```
在这个程序中,`isPerfectNumber()`函数会检查输入的数字是否为完数,而`printFactor()`函数则会打印出该数字及其因子。`main()`函数遍历1000以内的数,找出并输出完数。
阅读全文