Skip to content

Instantly share code, notes, and snippets.

@VRamazing
Last active February 9, 2025 12:57
Show Gist options
  • Save VRamazing/8788165aa8166242f8a21a1ba5e66493 to your computer and use it in GitHub Desktop.
Save VRamazing/8788165aa8166242f8a21a1ba5e66493 to your computer and use it in GitHub Desktop.
BinarySearchToFindSquareRoot
def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
if square_target < 0:
raise ValueError('Square root of negative number is not defined in real numbers')
if square_target == 1:
root = 1
print(f'The square root of {square_target} is 1')
elif square_target == 0:
root = 0
print(f'The square root of {square_target} is 0')
else:
low = 0
high = max(1, square_target)
root = None
for _ in range(max_iterations):
mid = (low + high) / 2
square_mid = mid**2
if abs(square_mid - square_target) < tolerance:
root = mid
break
elif square_mid < square_target:
low = mid
else:
high = mid
if root is None:
print(f"Failed to converge within {max_iterations} iterations.")
else:
print(f'The square root of {square_target} is approximately {root}')
return root
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment