用c语言如何判断两个整数之间的完数
时间: 2024-12-12 22:20:07 浏览: 64
在C语言中,完数也称为完美数,是指一个正整数除了它的所有真因数(即除了自身以外的因子)之和外,其余数恰好等于它自身的数。例如,6是一个完数,因为其真因数有1、2、3,它们的和正好是6。
下面是一个简单的示例程序,用于检查一个给定范围内的整数是否为完数:
```c
#include <stdio.h>
// 函数声明,用于计算一个数的因数
int count_factors(int n);
// 判断是否为完数
int is_perfect_number(int num) {
int sum = count_factors(num);
if (sum == num && sum > 1) // 确保数字大于1且除自身外的因子和等于它本身
return 1;
else
return 0;
}
// 计算一个数的因数函数
int count_factors(int n) {
int i = 1, factors = 0;
for (i = 1; i <= n / i; ++i)
if (n % i == 0) // 如果i是n的因数
factors += i + n / i; // 将i和n/i加到因子计数中
return factors;
}
int main() {
int start_num, end_num, i;
printf("请输入整数范围的开始和结束值:");
scanf("%d %d", &start_num, &end_num);
for (i = start_num; i <= end_num; ++i) {
if (is_perfect_number(i))
printf("%d 是一个完数.\n", i);
}
return 0;
}
```
在这个程序中,我们首先定义了一个`count_factors()`函数来计算一个数的因数总数,然后在`is_perfect_number()`函数里检查这个数及其因数之和是否相等。主函数会遍历指定范围内的每个整数并调用这两个函数判断是否为完数。
阅读全文
相关推荐



















