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));