The Babylonian algorithm to compute the square root of a positive 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 steps 2 and
3 are repeated, the closer guess will become to the square root of n .
Write a program that inputs a double for n , iterates through the Babylonian
algorithm five times, and outputs the answer as a double to two decimal places. Your answer will be most accurate for small values of n.
Program:
#include <iostream>
using namespace std;
int main()
{
double n;
double guess;
double r;
cout << "Enter a value for n: ";
cin >> n;
guess = n / 2;
r = n / guess;
guess = (guess + r) / 2.0;
r = n / guess;
guess = (guess + r) / 2.0;
r = n / guess;
guess = (guess + r) / 2.0;
r = n / guess;
guess = (guess + r) / 2.0;
r = n / guess;
guess = (guess + r) / 2.0;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "The square root of " << n << " is approximately: " << guess << endl;
return 0;
}
Output 1:
Enter a value for n: 144
The square root of 144.00 is approximately: 12.00
Output 2:
Enter a value for n: 16
The square root of 16.00 is approximately: 4.00