7) 10001st prime
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?
by fosco
JavaScript
function findPrimeByNumber(primeNumber, offset, sieve) {
sieve = sieve || [];
offset = offset || 5;
var sieveLength = sieve.length,
start = sieveLength === 0 ? 2 : sieveLength;
if (sieveLength !== 0) {
--sieveLength;
}
var n = sieveLength + offset;
for (var k = start; k <= n; k++) {
sieve[k] = 1;
}
for (k = 2; k * k <= n; k++) {
if (sieve[k] == 1) {
for (l = k * k; l <= n; l += k) {
sieve[l] = 0;
}
}
}
var index = 0,
value = 0;
for (k = 2; k <= sieve.length - 1; k++) {
if (sieve[k] === 1) {
++index;
}
if (index === primeNumber) {
value = k;
break;
}
}
if (value !== 0) {
return value;
}
return findPrimeByNumber(primeNumber, offset, sieve);
}
console.time('findPrimeByNumber');
console.log(findPrimeByNumber(10001, 100000)); //104743
console.timeEnd('findPrimeByNumber'); //24.166ms