输入两个正整数,找出它们之间的完全数,完全数是指其真因子相加后的和等于自身的正整数,比如6=1+2+3,6是完全数用c++写出一段代码
时间: 2024-12-15 14:18:21 浏览: 9
在C++中,我们可以编写一个简单的程序来查找给定范围内的完全数。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
bool isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i * i <= num; ++i) {
if (num % i == 0) {
// 如果i是因数,那么它的另一个因数就是num/i
if (i != num / i) {
sum += i + num / i;
} else {
sum += i; // 如果i既是i也是num/i,只加一次
}
}
}
return sum == num && num > 1; // 只有大于1的整数才可能是完全数
}
void findPerfectNumbers(int start, int end) {
for (int i = start; i <= end; ++i) {
if (isPerfectNumber(i)) {
std::cout << "完美数:" << i << std::endl;
}
}
}
int main() {
int rangeStart, rangeEnd;
std::cout << "请输入开始和结束范围(包括边界): ";
std::cin >> rangeStart >> rangeEnd;
findPerfectNumbers(rangeStart, rangeEnd);
return 0;
}
```
在这个程序中,`isPerfectNumber` 函数检查一个数字是否是完全数,而 `findPerfectNumbers` 函数则遍历指定范围内所有的整数并检查它们是否是完全数。用户可以输入一个范围,然后程序会打印出该范围内的所有完全数。
阅读全文