I have been trying to write Sieve of Eratosthenes algorithm in JavaScript. Basically I just literally followed the steps below:
function sieveOfEratosthenes(num, fromSt = null) {
let boolArr = Array(num + 1).fill(true); // Taking num+1 for simplicity
boolArr[0] = false;
boolArr[1] = false;
for (
let divisor = 2;
divisor * divisor <= num;
divisor = boolArr.indexOf(true, divisor + 1)
)
for (let j = 2 * divisor; j <= num; j += divisor) boolArr[j] = false;
let primeArr = [];
for (
let idx = fromSt || boolArr.indexOf(true);
idx !== -1;
idx = boolArr.indexOf(true, idx + 1)
)
primeArr.push(idx);
return primeArr;
}