#include using namespace std; #define ll long long #define FOR(i, j, k, in) for (int i=j; i=k; i-=in) #define REP(i, j) FOR(i, 0, j, 1) #define RREP(i, j) FOR(i, j, 0, 1) #define ALL(a) a.begin(), a.end() #define RALL(a) a.end(), a.begin() #define F first #define S second #define PB push_back #define MP make_pair #define pii pair #define MOD 1000000007 vector factorial(2, 1); ll mod_pow(ll a, ll b) { ll ans=1; while (b) { if (b&1) ans = (ans*a) % MOD; b /= 2; a = (a*a) % MOD; } return ans; } ll mod_inverse(ll a) { return mod_pow(a, MOD-2); } ll fact(ll n) { while (factorial.size() <= n) { factorial.PB(factorial.size()*factorial[factorial.size()-1] % MOD); } return factorial[n]; } ll combination_number(ll a, ll b) { if (a < 0 || b < 0 || b > a) { return -1; } return ((fact(a) * mod_inverse(fact(a-b))) % MOD * mod_inverse(fact(b))) % MOD; } vector> roots(18, vector(18, 1)); void solve() { ll x; cin >> x; if (x == 1) { cout << 1 << endl; return; } ll res=x; for (int k=1; k<=min((ll)17, x); k++) { double root = pow(x, 1.0/(double) k) * roots[k][k]; for (int j=0; j<= k; j++) { ll n = root + j; if (combination_number(n, k) == x) { res = min(res, n); } } } cout << res+1 << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); for (int k=1; k<=17; k++) { for (int j=1; j<=17; j++) { roots[k][j] = roots[k][j-1] * pow(j, 1.0/(double) k); } } ll n=1; cin >> n; REP(i, n) { solve(); } return 0; }