用C语言求100以内的完数
时间: 2024-12-02 11:17:06 浏览: 19
c语言-判断完数.docx
在C语言中,完数也被称为完美数,是指一个数的所有真因数(即除了自身以外的因子)之和等于它自身的数。例如,6是一个完数,因为它有三个因数(1、2、3),它们的和正好是6。
下面是一个简单的C程序,用于找出100以内的所有完数:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) { // 遍历从2到sqrt(num)
if (num % i == 0) {
// 如果i是因子,则添加i和num/i到sum
if (i != num / i) {
sum += i + num / i;
} else {
sum += i; // 如果i和num/i相等,只加一次
}
}
}
return sum == num ? 1 : 0; // 返回1表示是完数,0表示不是
}
int main() {
for (int i = 1; i <= 100; i++) {
if (isPerfect(i)) {
printf("%d 是一个完数。\n", i);
}
}
return 0;
}
```
这个程序首先定义了一个函数`isPerfect`来检查一个数是否是完数,然后在`main`函数中遍历1到100的数字,如果某个数字是完数,就打印出来。
阅读全文