Authors:

Walter Savitch ,kenrick Mock

Chapter:

C++ Basics

Exercise:

Programming Projects

Question:8 | ISBN:9780132846813 | Edition: 5

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
```