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