program racine;
var
n: integer;
x2r, x1r: real;
x2d, x1d: double;
x2e, x1e: extended;
begin
write('entrez la valeur de n (n entier): ');
readln(n);
(*calcul REAL *) x1r := n / 2;
x2r := 0.5 * (n / x1r + x1r);
while (not (x2r = x1r)) do begin
x1r := x2r;
x2r := 0.5 * (n / x1r + x1r);
end;
(*calcul DOUBLE *) x1d := n / 2;
x2d := 0.5 * (n / x1d + x1d);
while (not (x2d = x1d)) do begin
x1d := x2d;
x2d := 0.5 * (n / x1d + x1d);
end;
(*calcul EXTENDED *) x1e := n / 2;
x2e := 0.5 * (n / x1e + x1e);
while (not (x2e = x1e)) do begin
x1e := x2e;
x2e := 0.5 * (n / x1e + x1e);
end;
writeln('la valeur voulue est : ');
writeln('REAL ' : 20, ' ', 'DOUBLE ' : 25, ' ', 'EXTENDED ' : 25);
writeln(x2r : 25 : 20, ' ', x2d : 25 : 20, ' ', x2e : 25 : 20);
end.