rt,是常数大了还是漏写了优化? TLE记录
#include <bits/stdc++.h>
using namespace std;
const int N=1e8+2,N2=1e6+6;
bool inp[N];
int n,q;
int a[N2];
inline void init()
{
int t=0;a[0]=1;a[1]=1;
for (int i=2;i<=n;i++)
{
if (!inp[i]){t++;a[t]=i;}
for (int j=1;i*a[j]<=n && j<=t;j++)//
{
inp[i*a[j]]=1;
if ((i%a[j])==0) break;
}
}
}
inline int read()
{
int X=0; bool flag=1; char ch=getchar();
while(ch<'0'||ch>'9') {if(ch=='-') flag=0; ch=getchar();}
while(ch>='0'&&ch<='9') {X=(X<<1)+(X<<3)+ch-'0'; ch=getchar();}
if (flag) return X;return ~(X-1);
}
int main()
{
n=read();q=read();
init();
for (int i=1,j;i<=q;i++){j=read();printf("%d\n",&a[j]);}
return 0;
}