用C++写一个程序照出200内的所有完数
时间: 2024-11-15 13:34:27 浏览: 13
物品库存管理系统,一个用C++写的小程序
5星 · 资源好评率100%
在C++中,一个完数是指它的所有真因数(除了自身以外的因子)之和等于它自身的数。以下是用C++编写的一个简单程序,用于找出200范围内的所有完数:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 函数来检查是否是完数
bool isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) {
// 如果i是因子,则添加i和num/i到总和中(如果i不是最大因子)
sum += i;
if (i != num / i) {
sum += num / i;
}
}
}
return sum == num && num > 1; // 检查sum是否等于num,并排除1
}
int main() {
vector<int> perfectNumbers;
for (int i = 2; i <= 200; ++i) {
if (isPerfectNumber(i)) {
perfectNumbers.push_back(i);
}
}
// 打印结果
cout << "200以内的所有完数有:";
for (const auto& number : perfectNumbers) {
cout << number << " ";
}
cout << endl;
return 0;
}
```
这个程序会遍历从2到200的所有整数,对每个数检查是否是完数,如果是,就将其添加到`perfectNumbers`向量中。最后打印出找到的所有完数。
阅读全文