You should call the square_root_bisection and use the N variable as the argument but the code is not passing . # Example usage with N = 25
N = 25
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

Experiment with larger values

N = 1000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

N = 1000000
result = square_root_bisection

Your code so far

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
# User Editable Region
N = 16
# Example usage with N = 25
N = 25
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")
# Experiment with larger values
N = 1000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")
N = 1000000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")
# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0

Challenge Information:

Learn the Bisection Method by Finding the Square Root of a Number - Step 21

It keeps saying You should call the square_root_bisection(N) as a function and use N as the argument . 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_root_bisection})

Your code so far

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
# User Editable Region
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
# User Editable Region
N = 16
print(square_root_bisection(N))
# Experiment with larger values
N = 1000
print(square_root_bisection(N))
N = 1000000
print(square_root_bisection(N))
# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0

Challenge Information:

Learn the Bisection Method by Finding the Square Root of a Number - Step 21

Thanks for showing me how to call the function without the assignment
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

User Editable Region

N = 16
square_root_bisection(N) # Call the function directly