const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
(async function(){
const N = Number(await readline());
for(let i=0;i<N;i++){
console.log(isPrime(BigInt(await readline()))?'Yes':'No');
}
})()
.finally(()=>rl.close());
const isPrime = (n) => {
if (n < 2n) return false;
if (n % 2n === 0n) return n === 2n;
if (n % 3n === 0n) return n === 3n;
let d = n - 1n;
let s = 0;
while ((d & 1n) === 0n) s++, d >>= 1n;
const pow = (a, e, m) => {
let r = 1n;
for (; e; e >>= 1n) {
if (e & 1n) r = (r * a) % m;
a = (a * a) % m;
}
return r;
};
const test = (a) => {
let x = pow(a, d, n);
if (x === 1n || x === n - 1n) return true;
for (let i = 0; i < s - 1; i++) {
x = (x * x) % n;
if (x === n - 1n) return true;
}
return false;
};
const bases = [2n, 3n, 5n, 7n, 11n, 13n, 17n, 19n, 23n, 29n, 31n, 37n];
for (const a of bases) {
if (a >= n) break;
if (!test(a)) return false;
}
return true;
};