#include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(i=a;i<b;++i) #define repi(i,a,b) for(int i=a;i<b;++i) #define F first #define S second #define mp(a,b) make_pair(a,b) #define pii pair<int,int> #define ppi pair<pii,int> #define ppp pair<pii,pii> #define vi vector<int> #define sc(a) scanf("%d",&a) #define pb(a) push_back(a) #define pr(a) printf("%d",a) #define prn(a) printf("%d\n",a) #define scll(a) scanf("%lld",&a) #define prll(a) printf("%lld",a) #define prlln(a) printf("%lld\n",a) typedef long long LL; bool comp[10001]; set<int> primes; void pre() { comp[1] = 1; primes.insert(2); for(int i =2;i<=10001;++i) { if(comp[i]) continue; primes.insert(i); for(int j = i*i; j <= 10001; j+=i) comp[j] = true; } } bool happy[10000]; bool ex[10000]; bool geh(int x) { //cout<<x<<" "<<endl; if(ex[x] && happy[x]) return true; if(ex[x] && !happy[x]) return false; int y = 0; int z = x; while(z>0) { y += (z%10)*(z%10); z/=10; } ex[x] = true; return happy[x] = geh(y); } int main() { // your code goes here pre(); int p; sc(p); happy[1] = true; ex[1] = true; while(p--) { int k; sc(k); int pr; sc(pr); if(comp[pr]) { cout<<k<<" "<<pr<<" NO"<<endl; } else { cout<<k<<" "<<pr<<" "<<(geh(pr)?"YES":"NO")<<endl; } } return 0; }