C语言实例之求一区间内的完数的个数
时间: 2024-09-11 10:01:17 浏览: 72
C语言统计一篇英文短文中单词的个数实例代码
5星 · 资源好评率100%
在C语言中,完数(Perfect number)是指一个数恰好等于它的因子之和(除了它本身以外的因子)。例如,第一个完数是6,它有约数1、2、3,而1+2+3=6。
以下是一个简单的C语言程序,用于计算指定区间内的完数个数:
```c
#include <stdio.h>
// 函数声明,用于计算一个数的因子之和(不包括它本身)
int sumOfFactors(int num);
int main() {
int lower, upper, count = 0;
// 从用户获取区间
printf("请输入区间的下限和上限:");
scanf("%d %d", &lower, &upper);
// 遍历区间内的每个数,检查是否为完数
for(int i = lower; i <= upper; i++) {
if(sumOfFactors(i) == i) {
printf("%d 是一个完数\n", i);
count++;
}
}
// 输出完数的个数
printf("在%d到%d区间内一共有%d个完数\n", lower, upper, count);
return 0;
}
// 函数定义,用于计算一个数的因子之和(不包括它本身)
int sumOfFactors(int num) {
int sum = 0;
for(int i = 1; i <= num / 2; i++) {
if(num % i == 0) {
sum += i;
}
}
return sum;
}
```
这段代码首先包含了标准输入输出库`stdio.h`,然后声明了一个计算因子之和的函数`sumOfFactors`。在`main`函数中,程序首先提示用户输入区间的上下限,然后遍历该区间内的每一个数,调用`sumOfFactors`函数计算其因子之和,并判断是否等于该数本身,如果是,则输出该数并累加完数个数`count`。最后,程序会输出整个区间内完数的总数。
阅读全文