用c++打印10000以内所有完数 一行一个
时间: 2024-09-19 22:10:40 浏览: 37
200行c++代码写一个扫雷小游戏
在C++中,完数是指一个正整数等于其除自身以外的所有因数之和。为了打印10000以内的所有完数,可以编写如下的代码:
```cpp
#include <iostream>
#include <vector>
bool isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) {
if (i != num / i)
sum += i + num / i;
else
sum += i;
}
}
return sum == num && num > 1;
}
void printPerfectNumbers() {
for (int i = 1; i <= 10000; ++i) {
if (isPerfectNumber(i))
std::cout << i << " ";
}
std::cout << std::endl;
}
int main() {
printPerfectNumbers();
return 0;
}
```
这段代码首先定义了一个辅助函数`isPerfectNumber`用于检查一个数字是否为完数,然后在`printPerfectNumbers`函数中遍历1到10000的数字,如果发现是完数就打印出来。
运行此程序,它将在控制台输出10000以内的所有完数,并且每个数字占一行。
阅读全文