求2~1000之间所有的完数,要求每行输出5个。
时间: 2024-11-30 07:17:54 浏览: 13
一个完数(Perfect Number)是指它的所有真因子(除了自身以外的因子)加起来等于它本身的正整数。比如6,其真因子有1、2和3,它们的和正好等于6,所以6就是一个完数。
在C++中,你可以使用循环和条件判断来找出2到1000之间的完数,并按照每行输出5个的要求进行分组。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
bool is_perfect(int n) {
int sum = 1;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
if (i * i != n)
sum += i;
sum += n / i;
}
}
return sum == n && n > 1;
}
void print_perfect_numbers() {
std::vector<int> perfects;
for (int num = 2; num <= 1000; num++) {
if (is_perfect(num))
perfects.push_back(num);
}
int count = 0;
for (int num : perfects) {
std::cout << num << " ";
count++;
if (count % 5 == 0) {
std::cout << "\n";
}
}
}
int main() {
print_perfect_numbers();
return 0;
}
```
这段代码首先定义了一个`is_perfect`函数用于检查一个数是否为完数。然后,在`print_perfect_numbers`函数中,我们生成了一个包含所有2到1000之间完数的vector,并按需打印,每行输出5个。
运行此程序后,你会看到2到1000之间的完数,每五行一组。
阅读全文