在 python 或标准库中是否存在一个整数平方根?我希望它是精确的(例如,返回一个整数) ,如果没有解决方案,就吠叫。
那一刻,我自己也有一个天真的想法:
def isqrt(n):
i = int(math.sqrt(n) + 0.5)
if i**2 == n:
return i
raise ValueError('input was not a perfect square')
但是它很难看,我不相信它能用于大整数。我可以迭代遍历这些正方形,如果我已经超过了这个值,我就会放弃,但是我认为做这样的事情会有点慢。而且我想我可能是重造轮子,这样的东西肯定已经存在于巨蟒中了... ..。