#include<math.h>
#include<iostream>
#include<iomanip>
using namespace std;

/* Calcul d'une racine en utilisant une suite */

int main(){
  int i, nmax;
  double A, u, ua, eps;

  cout << setprecision(16);
  nmax = 100;
  eps = 1.e-10;
  cout << "Double A ? ";
  cin >> A;
  cout << "sqrt(" << A << ") = " << sqrt(A) << endl;
  // Methode for
  u = A;
  for (i = 0; i < nmax; i++){
    cout << i << ": " << u << endl;
    ua = u;
    u = (u + A/u)/2.;
    if (fabs((u - ua)/ua) < eps)
      break;
  }
  cout << "u = " << u << " apres " << i+1 << " iteration(s)." << endl;
  // Methode do while
  u = A;
  i = 0;
  do {
    cout << i << ": " << u << endl;
    ua = u;
    u = (u + A/u)/2.;
    i++;
  } while (fabs((u - ua)/ua) >= eps && i < nmax);
  cout << "u = " << u << " apres " << i << " iteration(s)." << endl;
  return 0;
}
