#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAX = 10000010; // 求MAX范围内的素数
ll su[MAX], cnt;
bool isprimer[MAX];
void Iprime()
{
cnt = 1;
memset(isprimer, 1, sizeof isprimer); // 初始化认为所有数都为素数
isprimer[0] = isprimer[1] = 0; // 0和1不是素数
for (ll i = 2; i <= MAX; i++)
{
if (isprimer[i]) // 保存素数
{
su[cnt++] = i;
}
for (ll j = 1; j < cnt && su[j] * i < MAX; ++j) // 素数的倍数都为合数
{
isprimer[su[j] * i] = 0; // 筛掉小于等于i的素数和i的积构成的合数
}
}
}
int main()
{
Iprime();
long long n, m; cin >> n >> m;
long long tmp;
while (m--)
{
cin >> tmp;
isprimer[tmp] ? printf("Yes\n") : printf("No\n");
}
}