本机第五个点是过的,洛谷上WA了,求调
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
int f=1,s=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){s=(s<<1)+(s<<3)+(ch^48);ch=getchar();}
return f*s;
}
inline void write(int x){
if(x<0){putchar('-');x=-x;}
if(x>9) write(x/10);
putchar(char(x%10+'0'));
}
int T,x,num[20000000],m;
bool a[20000000];
bool check(int x)
{
while(x){
if(x%10==7) return 1;
x/=10;
}
return 0;
}
signed main()
{
for(int i=1;i<=20000000;i++){
if(a[i]) continue;
else if(check(i)){
for(int j=1;j<=20000000/i;j++){
a[i*j]=1;
}
}
else num[++m]=i;
}
T=read();
while(T--){
x=read();
if(a[x]) puts("-1");
else{
int l=1,r=m,ans=0;
while(l<=r){
int mid=(l+r)>>1;
if(num[mid]>x) r=mid-1;
else if(num[mid]==x){ans=mid;break;}
else if(num[mid]<x) l=mid+1;
}
write(num[ans+1]);puts("");
}
}
// double A=sizeof(a);
// printf("%.10f",A/1024/1024);
}