I am supposed to make a class PrimeNumberGenerator which has a method nextPrime that will print out all prime numbers up to a number the user input
I use this way in generator, it works well.
const isPrime = (number) => {
if (
Number.isNaN(number) ||
!Number.isFinite(number) ||
number % 1 || // check int number
number < 2
) {
return false;
}
let i = 2;
const m = Math.ceil(Math.sqrt(number));
let isPrime = true;
while (i <= m) {
if (number % i === 0) {
isPrime = false;
break;
}
i = i + 1;
}
return isPrime;
};
function* primeNumber() {
let nextNumber = 2;
while (true) {
if (isPrime(nextNumber)) {
yield nextNumber;
}
++nextNumber;
}
}
const iter = primeNumber();
for (const n of iter) {
if (n > 100) iter.return("end");//end loop
console.log(n);
}
You can call next to get prime number in order.
const iter = primeNumber();
console.log(iter.next())
console.log(iter.next())
include thoes function to your class.