Много вопросов по коду
1) Почему тут начиная с 4, а не с 3?
for (let i = 4; i <= num; i = i + 3) {
2) Почему тут начиная с 14, а не с 7
for (let i = 14; i <= num; i = i + 7) {
3) Во-первых двойка в массиве у вас уже есть, во вторых зачем условие если можно просто i+=2?
for (let i = 2; i <= num; i++) {
if (i % 2 !== 0) {
numArr.push(i);
}
}
4) Где прочие простые числа? 11, 13 и т.д.?
Вобщем не видно чтобы этот код мог быть рабочим
Простой и эффективный код для этого случая будет таким
const simpleNumbersSum = max => {
const arr = new Array(max + 1)
let sum = 1 + 2; //Или просто 2, если единицу не учитываем
for (let i = 3; i <= max; i+=2) {
if (!arr[i]) {
sum+=i;
for (let j = i * i; j <= max; j+=i*2) {
arr[j] = true;
}
}
}
return sum
}
console.log(simpleNumbersSum(977))