#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAXN = 1e6;
bool isPrime[MAXN + 1];
void sieve() {
fill(isPrime, isPrime + MAXN + 1, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= MAXN; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= MAXN; j += i)
isPrime[j] = false;
}
}
}
int digit_sum(int n) {
int s = 0;
while (n) {
s += n % 10;
n /= 10;
}
return s;
}
int reverse_num(int n) {
int r = 0;
while (n) {
r = r * 10 + n % 10;
n /= 10;
}
return r;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
freopen("BEST.inp", "r", stdin);
freopen("BEST.out", "w", stdout);
sieve();
int Q;
cin >> Q;
while (Q--) {
int n;
cin >> n;
if (!isPrime[n]) {
cout << "No\n";
continue;
}
if (digit_sum(n) % 2 != 0) {
cout << "No\n";
continue;
}
int rev = reverse_num(n);
if (rev <= MAXN && isPrime[rev]) cout << "Yes\n";
else cout << "No\n";
}
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zIikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCmNvbnN0IGludCBNQVhOID0gMWU2Owpib29sIGlzUHJpbWVbTUFYTiArIDFdOwp2b2lkIHNpZXZlKCkgewogICAgZmlsbChpc1ByaW1lLCBpc1ByaW1lICsgTUFYTiArIDEsIHRydWUpOwogICAgaXNQcmltZVswXSA9IGlzUHJpbWVbMV0gPSBmYWxzZTsKICAgIGZvciAoaW50IGkgPSAyOyBpICogaSA8PSBNQVhOOyBpKyspIHsKICAgICAgICBpZiAoaXNQcmltZVtpXSkgewogICAgICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gTUFYTjsgaiArPSBpKQogICAgICAgICAgICAgICAgaXNQcmltZVtqXSA9IGZhbHNlOwogICAgICAgIH0KICAgIH0KfQppbnQgZGlnaXRfc3VtKGludCBuKSB7CiAgICBpbnQgcyA9IDA7CiAgICB3aGlsZSAobikgewogICAgICAgIHMgKz0gbiAlIDEwOwogICAgICAgIG4gLz0gMTA7CiAgICB9CiAgICByZXR1cm4gczsKfQppbnQgcmV2ZXJzZV9udW0oaW50IG4pIHsKICAgIGludCByID0gMDsKICAgIHdoaWxlIChuKSB7CiAgICAgICAgciA9IHIgKiAxMCArIG4gJSAxMDsKICAgICAgICBuIC89IDEwOwogICAgfQogICAgcmV0dXJuIHI7Cn0KaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgZnJlb3BlbigiQkVTVC5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIkJFU1Qub3V0IiwgInciLCBzdGRvdXQpOwogICAgc2lldmUoKTsKICAgIGludCBROwogICAgY2luID4+IFE7CiAgICB3aGlsZSAoUS0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgaWYgKCFpc1ByaW1lW25dKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5vXG4iOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGRpZ2l0X3N1bShuKSAlIDIgIT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJOb1xuIjsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGludCByZXYgPSByZXZlcnNlX251bShuKTsKICAgICAgICBpZiAocmV2IDw9IE1BWE4gJiYgaXNQcmltZVtyZXZdKSBjb3V0IDw8ICJZZXNcbiI7CiAgICAgICAgZWxzZSBjb3V0IDw8ICJOb1xuIjsKICAgIH0KfQo=