#include #include #include int main() { //constantes float x,ln2,ln,x_work,i; int n; ln2=0.693147181; float pre=0.0001; ln=0; scanf("%f",&x); //valeur de x if(x<=0) { // x doit être dans IR+* printf("error"); return 1;} x_work=x; //valeur de travail n=0;i=1; while( x_work >= 2) { // on déplace x_work dans ]0,2[ x_work/=2; n++; } x_work--; // on re-déplace dans ]-1,1[ //boucle de ln-ation while( (pow(x_work,i+1)/i)>pre) { ln=ln+(pow(-1,i+1)*pow(x_work,i)/i); //formule série entière i++; } ln+=n*ln2; printf("\n%f",ln); return 0; }