完全幂数,C语言代码
时间: 2024-12-15 20:12:36 浏览: 7
完全数是指所有真因子(除了本身以外的正因数)之和等于它本身的自然数。例如,6的真因子有1、2和3,它们的和正好等于6,所以6是一个完全数。
在C语言中,可以编写一个函数来检查一个数是否为完全数。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfectNumber(int num) {
int sum = 1; // 初始化为1,因为1是每个数的真因子
for (int i = 2; i * i <= num; i++) { // 遍历从2到sqrt(num)
if (num % i == 0) {
sum += i; // 如果i是因子,加到总和中
if (i != num / i) { // 如果不是自身,再加另一个因子
sum += num / i;
}
}
}
// 如果sum等于num,则返回true,否则false
return sum == num;
}
int main() {
int number;
printf("请输入一个整数: ");
scanf("%d", &number);
if (isPerfectNumber(number)) {
printf("%d 是一个完全数。\n", number);
} else {
printf("%d 不是完全数。\n", number);
}
return 0;
}
```
在这个代码中,`isPerfectNumber`函数计算并检查输入数字的所有因子之和,如果相等则返回`true`,表示它是完全数;否则返回`false`。注意,这个程序仅适用于较小的数,对于非常大的数可能会效率较低。
阅读全文