#include <stdio.h>
#include <math.h>
double x,y,R; int n,Q;

double expo(double x, double eps)
{      double sum=1, term=1; long k=1;
       double Tmin=term, Tmax=0;
       FILE *fp; fp=fopen("termg2.txt", "w");
       do  {term=term*x/k; sum=sum+term; k=k+1;
           if (Tmin>fabs(term)) {Tmin=fabs(term);}
           if (Tmax<fabs(term)) {Tmax=fabs(term);}
           fprintf(fp,"%e\n", term);
           printf("k=%d \t term=%e\n",k, term);}
       while (fabs(term)>eps);
       fclose(fp);
       printf("Tmin=%e\t Tmax=%e\n\n",Tmin,Tmax);
       return sum;            }

main()
{
    printf("-------Algorithme ameliore---------\n\n");
    x=-30;
    y=expo(x,1e-20);
    Q=(int)(x/log(2));
    R=x-Q*log(2);
    printf("Q=%d\tR=%e\n",Q,R);
    y=pow(2.0,Q)*expo(R,1e-20);
    printf("expo(%2.0f",x);
    printf(")=%e\n\n",y);
    getchar();
}

