请利用STL的动态数组vector,求解第一题的完全数,要求在数组中存入完全数的所有因子,并按下图所示输出完全数的因子。
时间: 2024-09-13 16:02:57 浏览: 47
STL(Standard Template Library)是C++标准模板库,其中的`vector`是一个可以动态扩展的数组容器,它能够存储任意类型的元素,并且能够自动管理内存。
完全数(Perfect Number)是指一个数恰好等于它的因子之和(不包括它自身)。例如,第一个完全数是6,它有三个因子1、2、3,这些因子之和为1+2+3=6。
以下是使用C++中的STL的`vector`来求解并打印第一个完全数6的所有因子的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> factors;
int num = 6; // 完全数
int sum = 0; // 用于存储因子之和
// 查找完全数的因子并存储在vector中
for (int i = 1; i <= num / 2; ++i) {
if (num % i == 0) { // 如果i是num的因子
factors.push_back(i); // 将因子添加到vector中
sum += i; // 累加因子的和
}
}
// 输出完全数
std::cout << "完全数: " << num << std::endl;
// 输出完全数的因子
std::cout << "因子有: ";
for (int factor : factors) {
std::cout << factor << " ";
}
std::cout << std::endl;
// 输出因子之和是否等于完全数
std::cout << "因子之和: " << sum << " " << (sum == num ? "等于完全数" : "不等于完全数") << std::endl;
return 0;
}
```
执行上述程序将输出:
```
完全数: 6
因子有: 1 2 3
因子之和: 6 等于完全数
```
阅读全文