3个TLE,求优化
#include<iostream>
using namespace std;
bool yam(int x)
{
while(x!=0)
{
if(x%10==7)
{
return 1;
}
x=x/10;
}
return 0;
}
int k[10000005];
int main()
{
k[1]=1;
k[2]=2;
k[3]=3;
k[4]=4;
k[5]=5;
k[6]=6;
long long a,b[10000005];
for(int i=7;i<10000005;i+=1)
{
if(i%7==0)
i++;
if(yam(i)==0&&k[i]!=-1)
{
k[i]=i;
}
if(k[i]==0)
{
for(int j=1;j*i<10000005;j++)
{
k[j*i]=-1;
}
}
}
cin>>a;
for(int i=0;i<a;i++)
{
cin>>b[i];
if(k[b[i]]==0||k[b[i]]==-1)
cout<<-1<<endl;
else if(yam(b[i])==0){
b[i]=b[i]+1;
for(;k[b[i]]!=b[i];b[i]++);
cout<<b[i]<<endl;
}
}
return 0;
}