c语言找出1000以内的完数,并用6 its facktors are 1,2,3输出
时间: 2024-11-18 12:19:32 浏览: 39
在C语言中,完数也被称为完美数,是指一个正整数的所有真因子(即除了自身以外的因子)加起来正好等于它本身的数。比如6是一个完数,它的因素除了1和6外,还有2和3,它们相加的总和正好是6。
下面是一个简单的C程序,用于找出1000以内的所有完数及其因子:
```c
#include <stdio.h>
// 定义一个函数来检查一个数是否为完数
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,则加入sum
sum += i;
// 同时,如果i不是num除以当前因子的商,也要加上那个商
if (i != num / i)
sum += num / i;
}
}
// 如果sum等于num,那么num就是完数
return sum == num;
}
int main() {
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d 的因子有 1, ", i);
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
if (j != i / j)
printf("%d, %d", j, i / j);
else
printf("%d", j); // 如果商和因子相同,只打印一次
}
}
printf("6\n");
}
}
return 0;
}
```
这个程序会遍历1到1000之间的每一个数,检查每个数是否为完数,如果是,就打印出其因子包括1和6。注意,因子的打印是在循环内部完成的,以减少冗余输出。
阅读全文
相关推荐






