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