7) 10001st prime (2nd version)
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 isPrime(n) {
if (n === 1) {
return false;
} else if (n < 4) {
return true; //2 and 3 are prime
} else if (n % 2 === 0) {
return false;
} else if (n < 9) {
return true; //we have already excluded 4,6 and 8.
} else if (n % 3 === 0) {
return false;
} else {
var r = Math.floor(Math.sqrt(n)), // n rounded to the greatest integer r so that r*r<=n
f = 5;
while (f <= r) {
if (n % f === 0) {
return false;
}
if (n % (f + 2) === 0) {
return false;
}
f += 6;
}
}
return true;
}
function findPrimeByNumber(primeNumber) {
if (primeNumber === 1) {
return 2;
}
var count = 1, //we know that 2 is prime
value = 1;
while (count < primeNumber) {
value += 2;
if (isPrime(value)) {
++count;
}
}
return value;
}
console.time('findPrimeByNumber');
console.log(findPrimeByNumber(10001)); //104743
console.timeEnd('findPrimeByNumber'); //23.788ms