import java.util.ArrayList;
import java.util.Scanner;

/**
 * Created by saveliyyusufov on 10/22/16.
 */
public class D {

    static int number;

    static ArrayList<Integer> sequence = new ArrayList<>();

    private static boolean isPrime(int number) {
        int limit = (int)Math.sqrt(number);

        if (number == 1) {
            return false;
        }

        for (int i = 2; i <= limit; i++) {
            if (number % i == 0) {
                return false;
            }
        }

        return true;
    }

    private static int addSquaresOfDigits(int number) {
        int temp = number;
        int digit;
        int result = 0;

        // Separate digits
        while (temp > 0) {
            digit = (temp % 10);
            //System.out.println(digit);
            temp /= 10;
            result += Math.pow(digit, 2);
        }

        return result;
    }

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int p = in.nextInt();

        while (p > 0) {
            int k = in.nextInt();
            int m = in.nextInt();
            number = m;

            if (isPrime(m)) {
                while (number != 1) {
                    number = addSquaresOfDigits(number);

                    if (sequence.contains(number)) {
                        System.out.println(k + " " + m + " NO");
                        break;
                    }
                    if (number == 1) {
                        System.out.println(k + " " + m + " YES");
                        break;
                    }

                    sequence.add(number);
                }
            } else {
                System.out.println(k + " " + m + " NO");
            }

            p--;
            sequence.clear();
        }

    } // end main


} // end class