用 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]
- Python 实现:根据甜度值为甜甜圈评定等级(字节豆包 | 243点数解答 | 2025-12-06 18:35:50)80
- 网站密码有效性检查:代码实现与详细解读(字节豆包 | 567点数解答 | 2025-11-26 20:44:53)73
- Python 高效求解:让数列变身接龙数列最少需删多少数?(字节豆包 | 493点数解答 | 2025-12-13 10:25:59)55
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)46
- 无名杀1.11.0:三国杀“韬晦”技能代码详解,开发避坑指南! (百度文心 | 1168点数解答 | 2026-01-12 21:02:27)44
- 深入探究:n 位格雷码中编号 k 二进制串的求解算法与实现(DeepSeek | 726点数解答 | 2026-01-13 12:31:37)44
- C++实现根据输入年龄输出对应英文单词,附代码及逻辑要点(DeepSeek | 224点数解答 | 2025-02-28 11:15:18)279
- C++ 实现:根据输入年龄输出对应英文年龄段描述及代码详解(DeepSeek | 307点数解答 | 2025-02-28 11:29:56)443
- 救援争先:按到达时间排序难题解析与代码实现(字节豆包 | 693点数解答 | 2025-08-07 10:56:54)219
- 救援争先:按到达时间排序救援队算法解析与注意要点(DeepSeek | 432点数解答 | 2025-08-07 10:58:12)182
- 救援争先:多条件排序算法解析与注意要点(字节豆包 | 964点数解答 | 2025-08-11 16:27:09)245
- C++ 帮陶陶计算能摘到的苹果数目:巧用板凳实现“丰收”(字节豆包 | 149点数解答 | 2025-10-29 20:10:13)113