#include #include #include #include #include #include #include using namespace std; const double eps=1e-8; int pr[1231]; struct A{vector a;double s;}e,te; struct P{int p[100],n;double s;}p,da; long long mx; int pt1(A &e,int n){ double k=1; for(int i=0;ip.s*1.00000001)return 0; } return 1; } void cf(P &p,int k){ p.p[p.n]=0; for(int i=0;in)return ; if(k>=mx){ if(!pt1(e,rt))return ; if(k>mx||(k==mx&& pt(qiu(e,rt),da))){ if(!pt(qiu(e,rt),p))return ; mx=k; da=qiu(e,rt); } } int ss=s[rt]; if(rt)ss=min(ss,e.a[rt-1]); for(int i=ss;i>=x[rt];i--){ e.a[rt]=i; dfs(rt+1,e,k*(e.a[rt]+1)); } } int gs(int k){ return 2*(log(pr[n]+0.0)/log(k+0.0))-1;} int gx(int k){ return (log(pr[n]+0.0)/log(k+0.0));} void qiu(){ for(n=1;;n++){ e.a.clear(); for(int i=0;i>s){ if(s=="1"){ puts("1 1"); continue; } mx=-1; reverse(s.begin(),s.end()); p.n=s.size(); p.s=0; for(int i=0;i