Project Euler 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 10001st prime number?
最初の6個の素数を並べると2,3,5,7,11,13で、6番目の素数は13であることが分かります。
10001番目の素数はいくらでしょうか。

Mathematica

Prime[10001]

これは卑怯といわれても仕方ない。

C/C++

#include <iostream>
#include <cmath>
using namespace std;

int main(){
	const int MAX = 1000000;
	bool p[MAX+1];
	
	for(int i=0 ; i<MAX+1 ; i++){
		p[i]=true;
	}
	p[0] = false;
	p[1] = false;

	double myEnd = sqrt(double(MAX));
	for(int i=2 ; i < myEnd ; i++){
		for(int j=2 ; i*j<=MAX ; j++){
			p[i*j] = false;
		}
	}

	int th = 1;
	for(int i=1 ; i<=MAX ; i++){
		if(p[i]){
			if(th == 10001) cout << th << "th -> " << i << endl;
			th++;
		}
	}
}