def mySqrt(self,x:int)->int:
if x==0:
return 0
import math
ans = int(math.exp(0.5*math.log(x)))
#因为小数有误差所以要判断一下是不是加1
#如果加1的平方还是小于等于x那就是ans+1,否则就是ans
return ans+1 if (ans+1)**2<=x else ans
2、二分法
#二分查找法
def mySqrt(self,x:int)->int:
l,r,ans = 0,x,-1
while l<=r:
#整除
mid = (l+r)//2
if mid**2<=x:
l = mid+1
ans = mid
else:
r = mid-1
return ans