difficultlong @ 2024-10-02 17:38:23
#include<bits/stdc++.h>
using namespace std;
int s[50000001];
int n,q,h[1000001];
bool flag(int x){
int j=2;
bool f=true;
while(j<=x-1){
if(!(x%j)){
f=false;
break;
}
j++;
}
if(x==2){
f=true;
}
return f;
}
int main(){
int j=0;
scanf("%d%d",&n,&q);
for(int i=2;i<=n;i++){
if(flag(i)){
s[++j]=i;
}
}
for(int i=1;i<=q;i++){
scanf("%d",&h[i]);
printf("%d\n",s[h[i]]);
}
return 0;
}
我已经优化了时间复杂度了,怎么还超时啊!!!
by QWQ_HY_DFX @ 2024-10-02 17:43:03
@difficultlong 《筛》
你这优化在哪了啊,甚至判断都没优化
by FarmerDrone @ 2024-10-02 17:55:09
@difficultlong 看题解吧,你这差得远呢
by difficultlong @ 2024-10-02 18:46:12
@xuyao35 额,感谢两位大佬的帮助,已关注,至于为什么不看题解,是因为(我懒)