我们可以直接把1到10000之间的3次方都打表,然后遍历1到10000
#include<iostream>
#include<cmath>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
const int maxn = 15e4 + 10;
using namespace std;
typedef long long ll;
int main()
{
int t;
cin >> t;
map<ll, ll>mp;
for (ll i = 1; i <= 1e4; i++)
{
mp[i * i * i] = 1;
}
while (t--)
{
ll x;
cin >> x;
bool flag = 0;
for (ll i = 1; i <= 1e4; i++)
{
if (mp[x - i * i * i] == 1)
{
flag = 1;
break;
}
}
if (flag)cout << "YES" << endl;
else cout << "NO" << endl;
}
}