本題是一道常規題,但有一點麻煩的是,要求前10000個素數,第10000個素數是104729,很容易超時
題目描述
Output the k-th prime number.
輸入描述:
k≤10000
輸出描述:
The k-th prime number.
示例1
輸入
3
7
輸出
5
17
#include <iostream>
#define Max 110001
using namespace std;
int prime[10001];
int primeSize=0;
bool mark[Max]={false};
void init(){
for(int i=2;i<Max;i++){
if(mark[i]) continue;
prime[primeSize++]=i;
if(primeSize>10000) break;
for(long long j=2*i;j<Max;j+=i)//關鍵點在此,如果用i*i,則會超時;此外 j要用longlong
mark[j]=true;
}
}
int main()
{
init();
int k;
while(cin>>k) cout<<prime[k-1]<<endl;
return 0;
}