/* Check cf5-opt.vim defs. VIM: let g:lcppflags="-std=c++11 -O2 -pthread" VIM: let g:wcppflags="/O2 /EHsc /DWIN32" */ #include #include /* 10001st prime Problem 7 By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10 001st prime number? Solution: 104743 */ typedef std::vector pt; pt p; bool isPrime( long long n ) { long h = (long long)sqrt(double(n)); for ( pt::iterator i = p.begin(), ie = p.end(); i!=ie && *i<=h; ++i ) if ( !(n%*i) ) return false; return true; } int main ( void ) { const long long n = 10001; for ( long long i = 2; p.size() < n; ++ i ) if ( isPrime( i ) ) p.push_back( i ); std::cout << p.back() << std::endl; return 0; }