Syl*_*ell 2 python math square-root
在Python中,
n**0.5 # or
math.sqrt(n)
Run Code Online (Sandbox Code Playgroud)
认识到一个数字是一个完美的平方?具体来说,我应该担心使用时
int(n**0.5) # instead of
int(n**0.5 + 0.000000001)
Run Code Online (Sandbox Code Playgroud)
由于精度误差,我可能会不小心以小于实际平方根的数字结束运算?
由于有几个答案都建议使用整数算术,因此我将推荐gmpy2库。它提供了一些功能,用于检查数字是否为理想幂,计算整数平方根和带余数的整数平方根。
>>> import gmpy2
>>> gmpy2.is_power(9)
True
>>> gmpy2.is_power(10)
False
>>> gmpy2.isqrt(10)
mpz(3)
>>> gmpy2.isqrt_rem(10)
(mpz(3), mpz(1))
Run Code Online (Sandbox Code Playgroud)
免责声明:我维护gmpy2。