You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python给定范围内平方数查找代码的性能优化咨询

代码优化方案

当然可以优化,而且优化后的运行速度会有显著提升,尤其是当给定的范围[a,b]跨度较大时。

原代码的问题

原代码需要遍历范围内的每一个数,先通过个位模运算过滤部分数,再对剩余数做开平方判断。这种逐个检查的方式在范围较大时,循环次数过多,且浮点数开平方存在精度风险(比如超大数的平方根计算可能出现误差,导致判断错误)。

优化思路

直接计算范围内所有平方数的平方根边界,然后生成对应的平方数,完全避免逐个检查:

  • 找到大于等于a的最小整数平方根start
  • 找到小于等于b的最大整数平方根end
  • 遍历start到end,每个数的平方就是符合条件的结果

优化后的代码

import math

a = int(input())
b = int(input())

start = math.ceil(math.sqrt(a))
end = math.floor(math.sqrt(b))

for num in range(start, end + 1):
    print(num * num, end=" ")

优化效果说明

  • 循环次数大幅减少:比如范围是1到1000000,原代码要循环100万次,优化后只需要循环1000次(从1到1000)
  • 避免浮点数精度问题:直接用整数乘法生成平方数,不会出现开平方后的判断误差
  • 省去了模运算和开平方判断的额外计算开销

内容的提问来源于stack exchange,提问作者Codeer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:07:14