Sqrt(x) in Python


Suppose we have a number x, and x is a non-negative number. We have to find the square root of x without using any library functions. So we have to create our own function to evaluate sqrt(x). In this function, the decimal digit of the output will be truncated.

Suppose the value of x is 4, then the result will be 2 if the x is 8, then the result will be also 2, as sqrt(8) is 2.82842. But we will take only the integer part.

To solve this, follow these steps −

  • initialize l = 1, and h = x + 1, answer = 0
  • while h > l, do
    • mid = (h + l)/2
    • if mid*mid <= x, then l := mid + 1, answer = mid
    • otherwise h = mid
  • return answer

Let us see the implementation to get better understanding

Example (Python)

 Live Demo

class Solution(object):
   def mySqrt(self, x):
      """
      :type x: int
      :rtype: int
      """
      low = 1
      high = x+1
      ans = 0
      while high>low:
         mid = (high+low)//2
         print(low,mid,high)
         if mid*mid<=x:
            low = mid+1
            ans = mid
         else:
            high = mid
      return ans
ob1 = Solution()
print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

Input

print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

Output

2
4
2
3

Updated on: 28-Apr-2020

361 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements