Ancient square root algorithm. The Babylonian algorithm to compute the square root of a number n is as follows:
1. Make a guess at the answer (you can pick n/2 as your initial guess).
2. Compute r = n / guess
3. Set guess = (guess + r) / 2
4. Go back to step 2 for as many iterations as necessary.
The more that steps 2 and 3 are repeated, the closer guess
will become to the square root of n.
Write a program that inputs an integer for n, iterates through the Babylonian algorithm until guess is within 1% of the previous guess, and outputs the answer as a double.
Input Details: The input will consist of a single integer. It is prompted for by the string "Enter number to compute the square root of."
Output Details: The program prints the label "The estimate of the square root of X is" followed by the estimate of the square root, where X is the number read in whose square root is being estimated. All numerical values should be printed with exactly two digits past the decimal point.
See response at:
http://www.jiskha.com/display.cgi?id=1329993466
To solve this problem, you can write a program in any programming language of your choice. Here's an example solution in Python:
```python
def babylonian_sqrt(n):
guess = n / 2 # initial guess
prev_guess = 0 # previous guess
while abs(prev_guess - guess) > 0.01 * guess: # iterate until guess is within 1% difference
prev_guess = guess
r = n / guess
guess = (guess + r) / 2
return guess
# Prompt for user input
n = int(input("Enter number to compute the square root of: "))
# Calculate the square root using the Babylonian algorithm
sqrt_estimate = babylonian_sqrt(n)
# Print the result
print("The estimate of the square root of", n, "is", format(sqrt_estimate, ".2f"))
```
In this program, the `babylonian_sqrt` function implements the Babylonian algorithm to calculate the square root. It starts with an initial guess of `n/2` and uses a while loop to iteratively refine the guess until it is within 1% of the previous guess.
The main part of the program prompts the user to enter a number, calls the `babylonian_sqrt` function to calculate the square root estimate, and then prints the result with two decimal places.
You can run this program and enter a number to compute its square root. The program will iteratively improve the estimate using the Babylonian algorithm until it converges to a value within 1% of the previous guess, and then it will print the result.