C++如何找出1000以内的所有完全数
时间: 2024-09-29 12:03:59 浏览: 41
在C++中,寻找1000以内的所有完全数,你需要先了解什么是完全数。完全数是指它的所有真因子(除了本身之外的正因子)之和等于它本身的数。例如6(1+2+3=6)就是完全数。
下面是一个简单的示例,使用了一个函数`isPerfect()`来检查一个数是否是完全数,并用另一个循环遍历1到1000,找出所有的完全数:
```cpp
#include <iostream>
using namespace std;
bool isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) {
if (i * i != num)
sum += i;
if ((num / i) * i != num)
sum += num / i;
}
}
return sum == num && num > 1;
}
int main() {
for (int i = 1; i <= 1000; ++i) {
if (isPerfect(i)) {
cout << i << " ";
}
}
return 0;
}
```
这段代码首先定义了一个辅助函数 `isPerfect()`,然后通过主循环调用这个函数来查找并打印出1000以内的完全数。
阅读全文