完成在指定范围内找出完数个数的小程序。C语言
时间: 2024-10-14 07:13:44 浏览: 17
完成一个C语言小程序来找出指定范围内的所有完美数,完美数是指它的所有真因数(除了自身外)加起来等于它本身的整数。以下是简单的C程序实现:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
if (i != num / i) { // 避免重复计数
sum += i;
sum += num / i;
} else {
sum += i;
}
}
}
return sum == num;
}
int countPerfectNumbers(int start, int end) {
int perfectCount = 0;
for (int i = start; i <= end; i++) {
if (isPerfect(i)) {
perfectCount++;
}
}
return perfectCount;
}
int main() {
int rangeStart, rangeEnd;
printf("请输入完美数查找的范围(起始值到结束值):");
scanf("%d %d", &rangeStart, &rangeEnd);
if (rangeStart > rangeEnd) {
printf("输入错误:起始值应小于或等于结束值。\n");
return 1;
}
int perfectNumsInRange = countPerfectNumbers(rangeStart, rangeEnd);
printf("在给定范围内 (%d 到 %d),有 %d 个完美数。\n", rangeStart, rangeEnd, perfectNumsInRange);
return 0;
}
```
在这个程序中,`isPerfect()` 函数用于检查一个数字是否是完美数,`countPerfectNumbers()` 函数则遍历指定范围并计算完美数的数量。用户会被提示输入范围,然后程序会输出该范围内完美的整数个数。
阅读全文