**Declare a, b, m, X, with suitable data types.**

**Ask the user politely to input a positive real number X;**

**If X is one, then output one;**

**Else,**

** If X is greater than 1, then let a = 1, b = X;**

** If X is less than 1, then let a = X, b = 1;**

** // from the observation from Fact 1, **

** // the solution must lie between a and b.**

** As long as b – a is more than 0.000001 times a, do**

** Let m = the midpoint of a and b;**

** If the square of m is equal to X,**

** Escape from the loop; (*)**

** If the square of m is more than X,**

** Let b = m;**

** If the square of m is less than X,**

** Let a = m;**

** Output the midpoint of a and b, claim it as ****;**