Ural 1086 Cryptography

Ural 1086 Cryptography
求第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 ;
}

你可能感兴趣的:(Ural 1086 Cryptography)