c语言 求完全数的个数
时间: 2024-10-28 07:10:17 浏览: 38
在 C 语言中,求一个范围内的完全数个数可以通过遍历并检查每个数是否是完全数来实现。完全数是指那些所有真因子(除了自身以外的正因数)加起来正好等于该数本身的自然数。例如,6是一个完全数,因为1+2+3=6。
下面是一个简单的示例程序,用于计算给定范围内完全数的数量:
```c
#include <stdio.h>
// 函数用来判断一个数是否为完全数
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
if (i != num / i) { // 如果不是本身因子,加两次
sum += i;
sum += num / i;
} else {
sum += i; // 否则只加一次
}
}
}
return sum == num ? 1 : 0;
}
// 主函数来统计某个范围内的完全数
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;
}
```
在这个程序中,`isPerfect` 函数会检查输入的数字是否是完全数,而 `countPerfectNumbers` 函数则负责计数特定范围内的完全数。
阅读全文