#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<malloc.h>
using namespace std;
bool iszhishu(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
bool isduicheng(int n)
{
if(n==1||n==0)
return false;
if(n>=2&&n<=9)
return true;
if(n>=100000)
return false;
int temp=n,i=0;
int *digit;
while(temp!=0)
{
digit[i]=temp%10;
temp=temp/10;
i++;
}
temp=0;
int k=i-1;
for(int j=0;j<k;j++)
{
temp=int(pow(10,i-1))*digit[j]+temp;
--i;
}
if(temp==n)
return true;
}
int main()
{
int n,i;
cin>>n;
int *a = (int *)malloc(n*sizeof(int));
for(int i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n-1;i++)
{
if(((isduicheng(a[i])==true)&&(iszhishu(a[i])==true)))
cout<<"Yes ";
else
cout<<"No ";
}
if(i==n-1)
{
if(((isduicheng(a[i])==true)&&(iszhishu(a[i])==true)))
cout<<"Yes";
else
cout<<"No";
}
return 0;
}