#include #include int a,b; double beki(double x,int n){ if(n==0) return 1; return x*beki(x,n-1); } double result(double x){ return beki(x,a)*beki(log(x),b); } int main(){ long m,i; double time,s,e,dif; scanf("%ld",&m); for(i=0;i0.000000001 || dif<-0.000000001){ if(dif>0){ s=(s+e)/2.0; }else{ e=(s+e)/2.0; } dif=time-result((s+e)/2.0); */ if(a==0){ s=pow(2.718281828459,pow(time,1.0/(double)b)); }else if(b==0){ s=pow(time,1.0/(double)a); }else if(b%2==1){ s=pow(2.718281828459,-1.0*(double)b/(double)a); e=22027.0; dif=time-result((s+e)/2.0); while(dif>0.000000001 || dif<-0.000000001){ if(dif>0){ s=(s+e)/2.0; }else{ e=(s+e)/2.0; } dif=time-result((s+e)/2.0); } }else{ if(result(1)0.000000001 || dif<-0.000000001){ if(dif>0){ s=(s+e)/2.0; }else{ e=(s+e)/2.0; } dif=time-result((s+e)/2.0); } }else{ s=0.0; e=pow(2.718281828459,-1.0*(double)b/(double)a); dif=time-result((s+e)/2.0); while(dif>0.000000001 || dif<-0.000000001){ if(dif>0){ e=(s+e)/2.0; }else{ s=(s+e)/2.0; } dif=time-result((s+e)/2.0); } } } printf("%.10f\n",s); } return 0; }