70pts,#8#9#10WA,发在题目讨论区没人回,求水帖子的大佬帮忙看一下。
#include<iostream>
#define AK 10000001
using namespace std;
int t,x,last_num;
bool flag[AK];
int next_num[AK];
bool hav7(int al)
{
while(al)
{
if(al%10==7) return true;
al/=10;
}
return false;
}
void enmrt7()
{
for(int i=1;i<AK;i++)
{
if(flag[i]) continue;
if(hav7(i))
{
for(int j=i;j<AK;j+=i)
{
flag[j]=1;
}
}
else
{
next_num[last_num]=i;
last_num=i;
}
}
}
int main()
{
scanf("%d",&t);
enmrt7();
for(int i=1;i<=t;i++)
{
scanf("%d",&x);
if(flag[x])
{
printf("-1\n");
}
else
{
printf("%d\n",next_num[x]);
}
}
return 0;
}