c语言求完全数的个数
时间: 2024-09-09 11:09:09 浏览: 63
在C语言中,求一个范围内的完全数(Perfect Number)个数,首先需要了解什么是完全数。完美数是指它的所有真因数(除了自身以外的因子)加起来正好等于它本身的数。例如6是一个完全数,因为它有1、2、3三个真因数,它们的和恰好为6。
以下是简单的C程序,用于计算给定范围内完全数的数量:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfect(int num) {
int sum = 1; // 自然数1作为默认的因数
for (int i = 2; i * i <= num; i++) { // 只需检查到num的平方根即可
if (num % i == 0) { // 如果i是因数
sum += i;
if (i != num / i) { // 如果i不是num的平方根,还需要加上另一个因数
sum += num / i;
}
}
}
return sum == num; // 如果sum等于num,则返回true
}
int countPerfectNumbers(int start, int end) {
int count = 0;
for (int i = start; i <= end; i++) {
if (isPerfect(i)) {
count++;
}
}
return count;
}
int main() {
int range_start, range_end;
printf("请输入范围的开始和结束值:");
scanf("%d %d", &range_start, &range_end);
int perfect_count = countPerfectNumbers(range_start, range_end);
printf("在%d到%d之间的完全数共有 %d 个。\n", range_start, range_end, perfect_count);
return 0;
}
```
阅读全文