#include<bits/stdc++.h>
using namespace std;
int T;
int x;
bool ab[10002000];
bool check(int x){
int k=x;
while(k){
if(k%10==7)return false;
k/=10;
}
return true;
}
void init(){
for(int i=1;i<=1e7+1000;i++){
if(ab[i]&&check(i)==false){
ab[i]=false;
for(int j=2*i;j<=1e7;j+=i){
ab[j]=false;
}
}
}
}
signed main(){
scanf("%d",&T);
memset(ab,1,sizeof(ab));
init();
while(T--){
scanf("%d",&x);
if(ab[x]==false){
printf("-1\n");
continue;
}
if(x==9999998){
printf("10000001\n");
continue;
}
int b=x+1;
while(ab[b]==false)b++;
printf("%d\n",b);
}
return 0;
}
就最后3个点TLE,麻烦大佬救一下。