#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;
        }

    }
}