#include <stdio.h>
#include <math.h>

double h(double x) {
  return x*x*x*x*x - 1.25;

}

double newton(double (*f)(double x), double x0) {
  double x = x0;
  const double delta = 1e-7;
  
  while (f(x) != 0 ) {
    double df_dx = (f(x+delta)-f(x))/delta;
    
    x = x - f(x) / df_dx;

    printf("%.10f, %e\n", x, f(x));
    
  }

  return x;
}

int main() {
  double x = newton(h, 2);
    
  if (fabs(h(x)) == 0)
    printf("root= %e\n", x);
  else
    printf("root not found!\n");

  return 0;
}