>>435
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
double
newton(double (*f)(double), double (*df)(double), double x, double h, int imax)
{
  int c;
  while (fabs(f(x))>h && c<imax){x -= f(x)/df(x); c++;}
  return c>=imax ? 0.0/0.0 : x;
}
#define IMAX 1000
double f(double x){return tan(x)-pow(x,x);}
double df(double x){return tan(x)*tan(x)-pow(x,x)*(log(x)-1)+1;}
int
main(int argc, char **argv)
{
  double x,y,h;
  if (argc<3) {fprintf(stderr, "usage: %s x0 delta\n", argv[0]); return 1;}
  sscanf(argv[1], "%lf", &x); sscanf(argv[2], "%lf", &h);
  y = newton(f, df, x, h, IMAX);
  if (y == y) printf("%.10e\n", y); else printf("failed\n");
  return 0;
}