JSFiddle - React, Tailwind, and code Playground

by Mohammed Ismail Ansari

JavaScript

var isPrime = (function () {

    var knownPrimes = [2, 3];

    var getNextPrime = function (seed) {
        return checkForPrime(seed) ?
            seed :
            getNextPrime(seed + 2);
    };
    
    var checkForPrime = function (num) {
        return !knownPrimes.filter(function (prime) {
            return !(num % prime);
        }).length;
    };

    var checkForPrimeExclusive = function (num) {
        return !knownPrimes.filter(function (prime) {
            return !(num % prime);
        }).length && knownPrimes.indexOf(num) < 0;
    };

    return function (number) {
        if (knownPrimes.indexOf(number) > -1) {
            return true;
        } else {
            while(knownPrimes[knownPrimes.length -1] <= number) {
                knownPrimes.push(getNextPrime(knownPrimes[knownPrimes.length - 1]));
            }

            console.log("Found new primes", knownPrimes);
                
            return checkForPrime(number);
        }
    };
})();

console.log(isPrime(17));