这个代码的时间复杂度是多少??(关)
#include<bits/stdc++.h>
using namespace std;
const int N=3000100;
int prime[N];
bitset<N>p;
void shai(int N)
{
int cnt=0;
p[0]=p[1]=1;
for (register int i=2; i<N;i++){
if (!p[i]) prime[++cnt]=i;
for (register int j=1; j <=cnt && i*prime[j]<N; j++){
p[i * prime[j]]=1;
if (i % prime[j] == 0) break;
}
}
}
int main(){
shai(N);
int k;
scanf("%d",&k);
printf("%d",prime[k]);
printf("\n");
return 0;
}