cpp1000以内的完数
时间: 2024-06-24 19:02:09 浏览: 77
在C++中,所谓的“完数”(Perfect Number)是指一个正整数,它的所有真因数(除了自身以外的因数)加起来正好等于它本身。比如6是一个完数,因为6的真因数(1, 2, 3)之和为6。在C++1000以内的整数中,找到所有的完数是一个常见的编程练习题目。
要列出C++1000以内的完数,你可以使用一个循环,对每个数进行检查,看它的所有真因数之和是否等于它本身。这里是一个简单的示例代码片段:
```cpp
#include <iostream>
#include <vector>
bool isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果还有另一个因子
sum += num / i;
}
}
}
return sum == num;
}
int main() {
std::vector<int> perfectNumbers;
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
perfectNumbers.push_back(i);
}
}
std::cout << "C++1000以内的完数有:";
for (const auto& num : perfectNumbers) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
运行这段代码后,你会看到C++1000以内的完数列表。
阅读全文