输入正整数m和n,输出m和n之间的所有完数用c++
时间: 2024-11-20 08:56:37 浏览: 16
在C++中,完数也被称为完美数,是指一个数的所有真因数(除了它自身之外的因子)加起来正好等于这个数本身。为了找出给定范围内(m到n之间)的所有完数,你可以编写一个循环程序,检查每个数字是否是完数。下面是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 函数用于计算一个数的因数之和
int sum_of_divisors(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; ++i) {
if (num % i == 0)
sum += i;
}
return sum;
}
// 主函数,查找并打印完数
void findPerfectNumbers(int m, int n) {
for (int i = m; i <= n; ++i) {
if (sum_of_divisors(i) == i) {
cout << i << " is a perfect number.\n";
}
}
}
int main() {
int m, n;
cout << "Enter the range (start and end): ";
cin >> m >> n;
// 检查范围内的完整数
findPerfectNumbers(m, n);
return 0;
}
```
在这个程序中,`findPerfectNumbers`函数遍历给定范围内的每个数,并调用`sum_of_divisors`函数计算其因数之和。如果因数和等于该数,则它是完数。
阅读全文