#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#define MAX 1000010
#define LMT 1000000
#define END 100000000 //9
bool a[MAX];
int count;
void seive(bool a[],int lmt);
int gen[10000000];
bool final[END];
int main(void)
{
long long int i,j,n,q,temp,length,val;
for(i=2;i<=LMT;i++)
a[i]=1;
seive(a,LMT);
for(i=2;i<=LMT;i++)
if(a[i])
count+=1;
int prime[count];
length=0;
for(i=0;i<=LMT;i++)
{
if(a[i])
{
prime[length]=i;
// printf("%d\n",prime[length]);
length+=1;
// printf("L= %d\n",length);
}
}
// printf("last prime = %d secondlast= %d \n",prime[length-1],prime[length-2]);
long long int genlen=0;
int flag=0;
for(i=0;i<length;i++)
{
temp=(long)(prime[i]);
for(j=i;j<length;j++)
{
if((temp*prime[j])>LMT && i==j)
{
flag=1;
break;
}
if((temp*prime[j])>LMT)
{
break;
}
gen[genlen]=temp*prime[j];
genlen+=1;
}
if(flag)
break;
}
// printf("%lld %lld\n",length,genlen);
for(i=0;i<genlen;i++)
final[gen[i]]=1;
scanf("%lld %lld",&n
,&q
); int a[n];
for(i=0;i<n;i++)
for(i=0;i<n;i++)
{
if(a[i]==1 || a[i]==0)
continue;
for(j=0;j<genlen;j++)
{
temp=(long)(gen[j]);
if((temp*a[i])>LMT)
continue;
while((a[i]*temp)<=LMT)
{
final[a[i]*temp]=1;
temp=(long)(temp*a[i]);
}
}
}
while(q--)
{
if(val==0)
else
{
if(final[val])
else
}
}
return 0;
}
void seive(bool a[],int lmt)
{
long int i,j,temp,temp1;
for(i
=2;i
<=sqrt(lmt
);i
++) {
if(a[i])
{
temp=(long)i;
for(j=2;temp*j<=lmt;j++)
{
temp1=(long)i;
a[temp1*j]=0;
}
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZTxzdGRib29sLmg+CiNkZWZpbmUgTUFYIDEwMDAwMTAKI2RlZmluZSBMTVQgMTAwMDAwMAojZGVmaW5lIEVORCAxMDAwMDAwMDAgLy85CmJvb2wgYVtNQVhdOwppbnQgY291bnQ7CnZvaWQgc2VpdmUoYm9vbCBhW10saW50IGxtdCk7CmludCBnZW5bMTAwMDAwMDBdOwpib29sIGZpbmFsW0VORF07CmludCBtYWluKHZvaWQpCnsKbG9uZyBsb25nIGludCBpLGosbixxLHRlbXAsbGVuZ3RoLHZhbDsKZm9yKGk9MjtpPD1MTVQ7aSsrKQphW2ldPTE7CnNlaXZlKGEsTE1UKTsKZm9yKGk9MjtpPD1MTVQ7aSsrKQppZihhW2ldKQpjb3VudCs9MTsKaW50IHByaW1lW2NvdW50XTsKbGVuZ3RoPTA7CmZvcihpPTA7aTw9TE1UO2krKykKewppZihhW2ldKQp7CnByaW1lW2xlbmd0aF09aTsKLy8gcHJpbnRmKCIlZFxuIixwcmltZVtsZW5ndGhdKTsKbGVuZ3RoKz0xOwovLyBwcmludGYoIkw9ICVkXG4iLGxlbmd0aCk7Cn0KIAp9Ci8vIHByaW50ZigibGFzdCBwcmltZSA9ICVkIHNlY29uZGxhc3Q9ICVkIFxuIixwcmltZVtsZW5ndGgtMV0scHJpbWVbbGVuZ3RoLTJdKTsKbG9uZyBsb25nIGludCBnZW5sZW49MDsKIAppbnQgZmxhZz0wOwpmb3IoaT0wO2k8bGVuZ3RoO2krKykKewp0ZW1wPShsb25nKShwcmltZVtpXSk7CmZvcihqPWk7ajxsZW5ndGg7aisrKQp7CmlmKCh0ZW1wKnByaW1lW2pdKT5MTVQgJiYgaT09aikKewpmbGFnPTE7CmJyZWFrOwp9CmlmKCh0ZW1wKnByaW1lW2pdKT5MTVQpCnsKYnJlYWs7Cn0KIApnZW5bZ2VubGVuXT10ZW1wKnByaW1lW2pdOwpnZW5sZW4rPTE7Cn0KaWYoZmxhZykKYnJlYWs7Cn0KLy8gcHJpbnRmKCIlbGxkICVsbGRcbiIsbGVuZ3RoLGdlbmxlbik7CiAKZm9yKGk9MDtpPGdlbmxlbjtpKyspCmZpbmFsW2dlbltpXV09MTsKc2NhbmYoIiVsbGQgJWxsZCIsJm4sJnEpOwppbnQgYVtuXTsKZm9yKGk9MDtpPG47aSsrKQpzY2FuZigiJWQiLCZhW2ldKTsKZm9yKGk9MDtpPG47aSsrKQp7CiBpZihhW2ldPT0xIHx8IGFbaV09PTApCiBjb250aW51ZTsKZm9yKGo9MDtqPGdlbmxlbjtqKyspCnsKdGVtcD0obG9uZykoZ2VuW2pdKTsKaWYoKHRlbXAqYVtpXSk+TE1UKQpjb250aW51ZTsKd2hpbGUoKGFbaV0qdGVtcCk8PUxNVCkKewpmaW5hbFthW2ldKnRlbXBdPTE7CnRlbXA9KGxvbmcpKHRlbXAqYVtpXSk7Cn0KfQp9CndoaWxlKHEtLSkKewpzY2FuZigiJWxsZFxuIiwmdmFsKTsKaWYodmFsPT0wKQpwcmludGYoIk5PXG4iKTsKZWxzZQp7CmlmKGZpbmFsW3ZhbF0pCnByaW50ZigiWUVTXG4iKTsKZWxzZQpwcmludGYoIk5PXG4iKTsKfQp9CnJldHVybiAwOwp9CnZvaWQgc2VpdmUoYm9vbCBhW10saW50IGxtdCkKewpsb25nIGludCBpLGosdGVtcCx0ZW1wMTsKZm9yKGk9MjtpPD1zcXJ0KGxtdCk7aSsrKQp7CmlmKGFbaV0pCnsKdGVtcD0obG9uZylpOwpmb3Ioaj0yO3RlbXAqajw9bG10O2orKykKewp0ZW1wMT0obG9uZylpOwphW3RlbXAxKmpdPTA7Cn0KfQp9Cn0=