#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define fr(v) for (int i = 0; i < v.size(); i++)
#define Fast                          \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
void input()
{
    if (fopen("stdin.txt", "r"))
    {
        freopen("stdin.txt", "r", stdin);
        freopen("stdout.txt", "w", stdout);
    }
}
ll OO = 0x3f3f3f3f;
struct DSU
{
    vector<int> par;
    int ncmp;
    void inti(int n)
    {
        ncmp = n;
        par.resize(n + 1, -1);
    }
    int find(int u)
    {
        return par[u] < 0 ? u : par[u] = find(par[u]);
    }
    bool merge(int u, int v)
    {
        u = find(u), v = find(v);
        if (u == v)
            return 0;
        if (par[u] < par[v])
            swap(u, v);
        par[u] += par[v];
        par[v] = u;
        ncmp--;
        return 1;
    }
};
ll power(ll b, ll n, ll m)
{
    ll res = 1;
    while (n > 0)
    {
        if (n % 2 != 0)
        {
            res = (res * b) % m;
        }
        b = ((b % m) * (b % m)) % m;
        n /= 2;
    }
    return res;
}
ll mod = 998244353;
ll modProd(ll a, ll b)
{
    /// complexity: 1
    a = (a % mod + mod) % mod;
    b = (b % mod + mod) % mod;
    return (a * b) % mod;
}
int modSum(ll a, ll b)
{
    /// complexity: 1
    a = (a % mod + mod) % mod;
    b = (b % mod + mod) % mod;
    return (a + b) % mod;
}
ll msb(ll x)
{
    return log2(x);
}
vector<ll> fact(2e5 + 5);
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, 1, -1};
int k_dx[8] = {1, 2, 2, 1, -1, -2, -2, -1};
int k_dy[8] = {2, 1, -1, -2, -2, -1, 1, 2};
// up,down,right,left
void solve()
{
    ll n;
    cin >> n;
    for (int i = 2; i < 60; i++)
    {
        ll l = 2, r = 1e9;
        while (l <= r)
        {
            ll mid = (l + r) / 2;
            ll ans = 1 + mid, cur = mid;
            while (ans < n)
            {
                cur *= mid, ans += cur;
            }
            if (ans == n)
            {
                cout << "YES\n";
                return;
            }
            else if (ans > n)
                r = mid - 1;
            else
                l = mid + 1;
        }
    }
    cout << "NO\n";
}
int main()
{
    Fast;
    input();
    int _t = 1;
    cin >> _t;
    while (_t--)
    {
        solve();
    }
    return 0;
}