第一个循环,i<MAXN打成了i<=MAXN,100分变成0分
#include<cstdio>
using namespace std;
const int MAXN=1e7+321;
int f[MAXN];
bool cj[MAXN],bj[MAXN];
int main()
{
//freopen("number.in","r",stdin);
//freopen("number.out","w",stdout);
bj[7]=1;
for(int i=1;i<=MAXN;i++)
{
for(int j=i;j>0;j/=10)
if(j%10==7)
{
bj[i]=1;
break;
}
if(bj[i])
{
if(!cj[i])
{
for(int j=1;i*j<MAXN;j++)
{
cj[i*j]=1;
bj[i*j]=1;
}
}
}
}
for(int i=MAXN-321;i>=1;i--)
{
if(bj[i])
f[i]=-1;
else
{
for(int j=i+1;j<=MAXN-1;j++)
if(!bj[j])
{
f[i]=j;
break;
}
}
}
int T,l1;
scanf("%d",&T);
while(T--)
{
scanf("%d",&l1);
printf("%d\n",f[l1]);
}
return 0;
}
我哭死