Python 素数判断代码:修正逻辑错误、提升效率的秘诀
代码存在逻辑错误和效率问题。在函数sushu中,n<=1的情况应该放在最开始判断,否则当n为1时会进入for循环,而for循环里的除法取余操作会导致错误结果。for循环用于检查n是否为素数,如果在循环过程中发现n能被i整除,应立即返回False表示n不是素数。但如果n不能被2到n-1之间的任何数整除,则n是素数,返回True。对于列表生成部分,可以使用列表推导式简化代码。 修正后的代码如下: ```python def sushu(n): if n <= 1: return False for i in range(2, int(n 0.5) + 1): # 只需遍历到sqrt(n) if n % i == 0: return False return True ls = [i for i in range(1, 21) if sushu(i)] print(ls) ``` 三条需要注意的逻辑点: 1. 判断一个数是否为素数时,只需检查到该数平方根即可。 2. 素数定义是从大于1的自然数中去除能被自身和1整除外的其他数整除的数。 3. 使用列表推导式可以使代码更加简洁高效。 ######[AI写代码神器 | 287点数解答 | 2025-01-09 14:51:20]
相关提问
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)463
- Photoshop 错误 8800 大揭秘:原因分析与实用解决方案(DeepSeek | 349点数解答 | 2025-02-28 11:19:16)573
- MaxScript 导出模型长度到 CSV 文件:代码错误排查与修正全解析 (字节豆包 | 525点数解答 | 2025-07-09 15:37:45)193
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)417
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)409
- 聚焦五方面突出问题,提升工作质效筑牢党建根基 (字节豆包 | 1200点数解答 | 2025-08-18 16:48:50)93
- 破解党建五大突出问题,提升工作落实质效推动全面从严治党纵深发展(字节豆包 | 925点数解答 | 2025-08-18 16:49:44)137
- 聚焦党建五方面问题,强化工作落实质效为复兴梦护航(字节豆包 | 949点数解答 | 2025-08-18 16:49:48)108
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)416
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)325
- Python 实现超有趣大鱼吃小鱼游戏,从初始 1 级开启进化之旅!( | 767点数解答 | 2024-05-31 11:50:29)251
- Python 实现移位与仿射密码:精准加密解密及关键逻辑解析(字节豆包 | 798点数解答 | 2024-12-18 15:55:47)254