Я должен написать алгоритм, который возвращает сумму всех простых чисел до определенного числа (аргумент), включая сам аргумент.Этот код, кажется, работает очень хорошо (я тестировал его на меньших числах), однако должна быть ошибка, потому что, когда я передаю 977 в качестве аргумента, программы возвращают 108789 , чтопредположительно не правильно.Согласно freecodecamp.org, он должен вернуть 73156 .Я уже проверил массив перед добавлением значений, но я не вижу проблемы здесь.
function sumPrimes(num) {
function isPrime(n){
return ((n/2 === 1 || n/3 === 1 || n/5 === 1 || n/7 === 1)?true:
(n%2===0 || n%3 === 0 || n%5 ===0 || n%7 === 0)?
false:true);
};
let result = [];
let final;
for(let i = 2; i <= num; i++){
if(isPrime(i)){
result.push(i);
}
}
final = result.reduce((x,y) => x + y);
console.log(final); // returns 108789
}
sumPrimes(977);