全TLE
查看原帖
全TLE
1008752
sjy01楼主2024/8/20 08:19

代码如下:

#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)。

2024/8/20 08:19
加载中...