sjy01 @ 2024-08-20 08:19:22
代码如下:
#include<bits/stdc++.h>
using namespace std;
int k[10000001],a[10000001];
int main(){
int n,q,max=0,sum=22;
cin>>n>>q;
for(int i=1;i<=q;i++){
cin>>k[i];
max=max>k[i]?max:k[i];
}
a[1]=2;
a[2]=3;
a[3]=5;
a[4]=7;
a[5]=11;
a[6]=13;
a[7]=17;
a[8]=19;
for(int i=9;i<=max;i++){
while(true){
sum++;
bool f=true;
for(int j=1;j<i&&a[j]<=sqrt(sum);j++){
if(sum%a[j]==0){
f=false;
break;
}
}
if(f){
a[i]=sum;
break;
}
}
}
for(int i=1;i<=q;i++){
printf("%d\n",a[k[i]]);
}
return 0;
}
代码有点乱,请各位大佬纠正错误(其实本人也不知道什么是TLE)。
by 违规用户名Jx9)zIu @ 2024-08-20 08:29:09
三重循环,你不TLE谁TLE
@sjy01
by Texas_the_Omertosa @ 2024-08-20 08:32:33
xxs 就去学学 xxs
by sjy01 @ 2024-08-20 08:33:10
@违规用户名Jx9)zIu,谢谢,不过我不知道怎么改。