2410: 求正整数2和n之间的完全数用C++怎么做?
时间: 2024-02-15 21:05:01 浏览: 39
要求出正整数2和n之间的完全数,可以使用以下代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfect(int num) {
int sum = 1;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) {
sum += num / i;
}
}
}
return num == sum;
}
int main() {
int n;
cout << "请输入n的值:";
cin >> n;
cout << "2到" << n << "之间的完全数有:";
for (int i = 2; i <= n; i++) {
if (isPerfect(i)) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
使用 `isPerfect()` 函数判断一个数是否为完全数,该函数的实现是通过遍历 `num` 的因数并计算它们的和,最后与 `num` 进行比较得出的。在 `main()` 函数中,遍历 2 到 n 之间的所有整数,使用 `isPerfect()` 函数判断是否为完全数,若是则输出该数。