C++ 实现:快速判断正整数是否为质数,附代码详解与复杂度分析
```cpp #include <iostream> int main() { int n; std::cin >> n; // 如果 n 小于等于 1,它不是质数 if (n <= 1) { std::cout << (n > 1? "Yes" : 0) << std::endl; return 0; } // 从 2 开始检查约数 for (int i = 2; i * i <= n; ++i) { if (n % i == 0) { // 找到第二小的约数 std::cout << i << std::endl; return 0; } } // 如果没有找到除 1 和自身之外的约数,n 是质数 std::cout << "Yes" << std::endl; return 0; } ``` 代码解释 1. 输入处理:使用 `std::cin` 读取用户输入的正整数 `n`。 2. 特殊情况处理:如果 `n` 小于等于 1,它不是质数,根据题目要求输出结果。 3. 检查约数:从 2 开始遍历到 `sqrt(n)`,如果 `n` 能被 `i` 整除,说明 `n` 不是质数,输出 `i` 作为第二小的约数。 4. 质数判断:如果没有找到除 1 和自身之外的约数,说明 `n` 是质数,输出 `Yes`。 复杂度分析 - 时间复杂度:$O(\sqrt{n})$,因为只需要遍历到 `sqrt(n)`。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 402点数解答 | 2025-11-08 21:02:42]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)231
- C++求解序列或与运算和差值:避O(nq)复杂度及数据处理要点(字节豆包 | 534点数解答 | 2025-10-17 20:05:07)64
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)419
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)328
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)471
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)361
- Java 实现:轻松生成 5 位数字、大小写字母混合验证码( | 266点数解答 | 2024-03-06 17:39:10)335
- 深度剖析:游戏中两个 Buff 效果的触发条件、逻辑及注意要点 (阿里通义 | 566点数解答 | 2024-11-26 14:24:12)262
- 深度剖析 Vue 2 插槽:从基础使用到高级玩法(字节豆包 | 165点数解答 | 2024-11-29 11:25:06)217
- C++实现支持四则运算的简单计算器,处理除数为0和无效操作(字节豆包 | 241点数解答 | 2025-10-29 20:21:29)66