Python 判断素数:代码实现、注意边界与性能优化
```python import math def is_prime(n): if n < 2: return False if n == 2: return True if n % 2 == 0: return False # 只需检查奇数因子,从3到sqrt(n) for i in range(3, int(math.isqrt(n)) + 1, 2): if n % i == 0: return False return True # 读取输入 N = int(input()) for _ in range(N): num = int(input()) if is_prime(num): print("Yes") else: print("No") ``` 代码说明: - `is_prime` 函数判断一个数是否为素数。处理了小于2、等于2、偶数等特殊情况。 - 使用 `math.isqrt` 获取整数平方根,避免浮点误差。 - 循环只检查到 √n 的奇数,提升效率。 - 主程序按格式读取 N 和后续的 N 个数字,逐个判断并输出结果。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 输入边界值如 1、2 或非常接近 1000000 的数时,逻辑容易出错,必须显式覆盖这些情况。 - 判断素数时若循环条件写成 i <= sqrt(n) 而未取整,可能因浮点精度导致越界或漏判。 - 忽略偶数优化会使时间复杂度上升,在处理多个大数时性能下降明显。 ######[AI写代码神器 | 343点数解答 | 2025-11-06 12:56:21]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)468
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- MATLAB:从判断单个数是否为素数到求任意范围素数的实现(字节豆包 | 1445点数解答 | 2025-12-26 08:25:53)32
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)425
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)417
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)420
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)330
- MATLAB:用循环语句判断输入的数是否为素数(字节豆包 | 200点数解答 | 2025-12-26 08:23:12)34
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)475
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)361
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)341