求1000以内的完数 c语言,并输出因子
时间: 2024-11-22 08:48:43 浏览: 52
在C语言中,求一个数n是否为完全数(Perfect Number)是指该数的所有真因数(除了它本身以外的正因数)加起来等于n本身的数。例如,6是一个完全数,因为1+2+3=6。下面是一个简单的程序,用于找出1000以内所有的完全数并输出它们的因子:
```c
#include <stdio.h>
// 函数判断一个数是否为完美数
int isPerfect(int num) {
int sum = 1; // 真因数之和初始化为1
for (int i = 2; i * i <= num; i++) { // 遍历到num的平方根
if (num % i == 0) { // 如果i是num的因子
sum += i; // 加入因子
if (i != num / i) { // 如果i不是num除以i,说明还有一个因子
sum += num / i;
}
}
}
return sum == num; // 返回sum是否等于num
}
int main() {
for (int i = 1; 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;
}
```
运行这个程序,你会看到1000以内的所有完美数及其对应的因子。
阅读全文