I have been working on a coding challenge. The instructions are as follows:
"Create an endless stream of prime numbers - a bit like IntStream.of(2,3,5,7,11,13,17), but infinite ( well, long ). The stream must be able to produce 25 million primes in seconds"
My code generates prime numbers but not fast enough; it keep timing out. I was hoping someone might be able to give me some guidance on how to optimize my solution or find a better one. My code is below. This is my first time posting on here in a while, so if I need to do anything differently or clarification is needed please let me know. Thank you.
class Primes {
static * stream() {
yield 2;
let n = 3;
while (n < 15486042) {
if (isPrime(n)) {yield n}
n += 2;
}
}
}
function isPrime(n) {
for (let a = 3; a <= ~~Math.sqrt(n); a+=2) {
if (n%a == 0) return false;
}
return true;
}