#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 long long get(long long n,long long b){ long long ok = 1,ng = Inf; if(b>=20){ ng = 10; } else if(b>=10){ ng = 70; } while(ng-ok>1LL){ long long mid = (ok+ng)/2; long long t = n; rep(i,b){ t /= mid; } if(t==0)ng = mid; else ok = mid; } return ok; } int main(){ vector p; for(int i=2;i<60;i++){ int c = 0; for(int j=1;j<=i;j++){ if((i%j==0))c++; } if(c==2)p.push_back(i); } int m = p.size(); vector mul(1< si(1<>j)&1){ si[i] *= -1; mul[i] = min((long long)60,mul[i]*p[j]); } } } vector mm,ss; rep(i,mul.size()){ if(si[i]!=0 && mul[i]!=60){ mm.push_back(mul[i]); ss.push_back(si[i]); } } //cout<>_t; rep(_,_t){ long long K; cin>>K; long long ok = 0,ng = 1000000000000000000; while(ng-ok>1LL){ long long mid = (ok+ng)/2; long long sum = 0LL; sum += Sum; rep(i,mm.size()){ sum += get(mid,mm[i])*ss[i]; } if(sum >= K)ng = mid; else ok = mid; } cout<