(c++)编写一个程序,输出2~1000之间的所有完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身
时间: 2024-09-09 21:00:57 浏览: 112
在C++中,编写一个找出2到1000之间所有完全数的程序可以使用循环结构和条件判断。首先,我们需要了解完全数的特点:一个正整数如果除了1和它本身以外,其余的所有真因数(即除了1和自身以外能整除这个数的数)加起来恰好等于它本身,那么这个数就是完全数。
下面是一个简单的C++程序,用于找到并打印出2至1000之间的完全数:
```cpp
#include <iostream>
// 判断是否是完全数的辅助函数
bool isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; ++i) { // 只需要检查到num的平方根即可
if (num % i == 0) {
if (i != num / i) { // 如果还有其他因子,比如num / i
sum += i + num / i;
} else {
sum += i; // 如果只有一个因子,则直接加上
}
}
}
return sum == num && num > 1; // 返回sum是否等于num以及num大于1(排除1)
}
int main() {
for (int i = 2; i <= 1000; ++i) {
if (isPerfectNumber(i)) {
std::cout << i << " is a perfect number.\n";
}
}
return 0;
}
```
在这个程序中,`isPerfectNumber` 函数负责计算给定数字的因子和并判断是否为完全数。在主函数`main`里,我们遍历从2到1000的所有整数,并对每个数调用`isPerfectNumber`,如果是则输出结果。
阅读全文