#include <iostream>
#include <set>
using namespace std;
int isprime(int x){
if (x == 1) return 0;
if (x == 2) return 1;
for (int i = 2; i * i <= x; i++)
if (x % i == 0)
return 0;
return 1;
}
int main(){
int T;
cin >> T;
while (T--){
int no, m;
cin >> no >> m;
cout << no << " " << m << " ";
if (!isprime(m))
cout << "NO" << endl;
else{
set<int> all;
int n = m;
while (1){
int sum = 0;
while (n > 0){
sum += (n % 10) * (n % 10);
n /= 10;
}
if (all.count(sum))
break;
all.insert(sum);
n = sum;
}
if (all.count(1))
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
}