心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
求第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 阅读(223) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:数学/数论

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理