Skip to content

Instantly share code, notes, and snippets.

@railsstudent
Created May 20, 2018 06:28
Show Gist options
  • Save railsstudent/adeb0b7638ff7540edf79b3f88046ab3 to your computer and use it in GitHub Desktop.
Save railsstudent/adeb0b7638ff7540edf79b3f88046ab3 to your computer and use it in GitHub Desktop.
Create a generator function to get the first N prime numbers
function* primeNumber(firstN) {
const notPrimes = [];
const primes = [];
let p = 2;
while (p <= firstN) {
primes.push(p);
for (let i = 2; p * i <= firstN; i++) {
if (!notPrimes.includes(p * i)) {
notPrimes.push(p * i);
}
}
p += 1;
while (notPrimes.includes(p)) {
p += 1;
}
}
let i = 0;
while (i < primes.length) {
yield primes[i++];
}
}
const it = primeNumber(30);
console.log(it.next());
console.log(it.next());
console.log(it.next());
console.log(it.next());
console.log(it.next());
console.log(it.next());
for (num of it) {
console.log(num);
}
console.log("Find first 19 prime numbers");
const it2 = primeNumber(19);
for (num of it2) {
console.log(num);
}
console.log("Find first 100 prime numbers");
const it3 = primeNumber(100);
console.log(it3.next());
console.log(it3.next());
console.log(it3.next());
console.log(it3.next());
console.log(it3.next());
console.log(it3.next());
for (num of it3) {
console.log(num);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment