求第k个素数。
以下是我的代码:
#include <cstdio>
using namespace std;
const int kMaxn = 200000;
int cnt, Prime[ kMaxn + 7 ];
bool isPrime[ kMaxn + 7 ];
void GetPrime ()
{
cnt=0;
for ( int i = 2; i <= kMaxn; i++ )
isPrime[i] = true;
for ( int i = 2; i <= kMaxn; i++ )
{
if ( isPrime[i] )
Prime[++cnt] = i;
for ( int j = 1; j <= cnt && i * Prime[j] <= kMaxn; j++ )
{
isPrime[ i * Prime[j] ] = false;
if ( i % Prime[j] == 0 )
break;
}
}
}
int main()
{
GetPrime ();
int T;
scanf ( "%d", &T );
while ( T-- )
{
int k;
scanf ( "%d", &k );
printf ( "%d\n", Prime[k] );
}
return 0;
}
posted on 2011-09-06 18:52
lee1r 阅读(238)
评论(0) 编辑 收藏 引用 所属分类:
题目分类:数学/数论