#include<bits/stdc++.h>
using namespace std;
#define int long long
int p[1000001];
//int dp[100001];
void pre()
{
memset(p,0,sizeof p);
p[0]=1;
p[1]=1;
for(int i=2;i<=100;i++)
p[i*i*i]=1;
}
main()
{
int t;
cin>>t;
pre();
while(t--)
{
int n,k;
cin>>n>>k;
int cubes = n*n*n;
int left = cubes-k;
int cnt=0;
bool f=false;
while(1)
{
int r= left+ cubes*cnt;
if(r>100*100*100)
break;
// cout<<left<<" ";
if(p[r]){
f=true;
break;
}
cnt++;
}
if(p[left])
cout<<"YES"<<endl;
else if(f)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCmludCBwWzEwMDAwMDFdOwoKLy9pbnQgZHBbMTAwMDAxXTsKCnZvaWQgcHJlKCkKewoJbWVtc2V0KHAsMCxzaXplb2YgcCk7CglwWzBdPTE7CglwWzFdPTE7CgoKCWZvcihpbnQgaT0yO2k8PTEwMDtpKyspCglwW2kqaSppXT0xOwp9CgptYWluKCkKewoJaW50IHQ7CgljaW4+PnQ7CglwcmUoKTsKCXdoaWxlKHQtLSkKCXsKCQlpbnQgbixrOwoJCWNpbj4+bj4+azsKCQlpbnQgY3ViZXMgPSBuKm4qbjsKCQlpbnQgbGVmdCA9IGN1YmVzLWs7CgkJCgkJaW50IGNudD0wOwoJCWJvb2wgZj1mYWxzZTsKCQkKCQoJCXdoaWxlKDEpCgkJewoJCQlpbnQgcj0gbGVmdCsgY3ViZXMqY250OwoJCQlpZihyPjEwMCoxMDAqMTAwKQoJCQkJYnJlYWs7CgkJLy8JY291dDw8bGVmdDw8IiAiOwoJCQlpZihwW3JdKXsKCQkJZj10cnVlOwoJCQlicmVhazsKCQl9CgkJCWNudCsrOwoJCX0KCQkKCQlpZihwW2xlZnRdKQoJCWNvdXQ8PCJZRVMiPDxlbmRsOwoJCWVsc2UgaWYoZikKCQljb3V0PDwiWUVTIjw8ZW5kbDsKCQllbHNlCgkJY291dDw8Ik5PIjw8ZW5kbDsJCgl9Cn0=