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