Skip to content

Instantly share code, notes, and snippets.

@rajivnarayana
Last active August 31, 2016 08:01
Show Gist options
  • Save rajivnarayana/f649fc192fffe30089574f1f67a18f4d to your computer and use it in GitHub Desktop.
Save rajivnarayana/f649fc192fffe30089574f1f67a18f4d to your computer and use it in GitHub Desktop.
Find all primes till certain limit.
var primesUsingEratosthenesMethod = function(num) {
return new Array(num).fill(1).map((key, index) => index + 1).reduce((primesLessThanCur, cur) => {
if (cur < 2) return primesLessThanCur;
if (primesLessThanCur.filter(prime => prime * prime <= cur).every(prime => cur % prime != 0)) {
return primesLessThanCur.concat(cur);
}
return primesLessThanCur;
}, [])
}
var primesUsingFilter = function(num) {
function isPrime(number) {
if (number < 2) return false;
if (number < 4) return true;
let limit = Math.sqrt(number);
for (let i=2; i<= limit; i++) {
if (number %i == 0) return false;
}
return true;
}
return new Array(num).fill(1).map((key, index) => index + 1).filter(isPrime)
}
let start = Date.now()
console.log(primesUsingEratosthenesMethod(10000).length, Date.now() - start);
//Output 1229 631
start = Date.now()
console.log(primesUsingFilter(10000).length, Date.now() - start);
//Output 1229 6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment