酷代码 AI
菜单
服务商

用 C++ 找出 2 到指定数之间的所有完全数

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> using namespace std; // 检查一个数是否为完全数的函数 bool isPerfect(int num) { int sum = 0; // 遍历从 1 到 num-1 的所有数,找出所有因子并求和 for (int i = 1; i < num; i++) { if (num % i == 0) { sum += i; } } // 判断因子之和是否等于该数本身 return sum == num; } int main() { int n; // 读取输入的正整数 n cin >> n; // 遍历从 2 到 n 的所有数 for (int i = 2; i <= n; i++) { // 检查当前数是否为完全数 if (isPerfect(i)) { // 如果是完全数,则输出该数 cout << i << endl; } } return 0; } ``` ### 代码解释 1. **`isPerfect` 函数**:该函数用于检查一个数是否为完全数。它接受一个整数参数 `num`,通过遍历从 1 到 `num - 1` 的所有数,找出所有因子并求和,最后判断因子之和是否等于该数本身。 2. **`main` 函数**:首先读取输入的正整数 `n`,然后遍历从 2 到 `n` 的所有数,对于每个数调用 `isPerfect` 函数进行检查,如果是完全数则输出该数。 ### 复杂度分析 - **时间复杂度**:$O(n^2)$,因为对于每个数都需要遍历其所有可能的因子。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 450点数解答 | 2026-03-14 17:06:02]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]