Tell us what’s happening:
For large numbers my for loop for checking if the number is prime stops on the way for a reason not known to me.
Your code so far
function sumPrimes(num) {
var numList = [];
var primeSum = 0;
var primeList = [];
for (let i = 2; i <= num; i++) {
numList.push(i);
}
// console.log("numList is " + numList);
function isItPrime(nr) {
console.log("running isItPrime for " + nr);
if (nr==2) {
console.log(nr + " is prime");
return true;
} else {
for (let j=2; j<nr; j++) {
if (nr%j===0) {
console.log(nr + " is not prime");
return false;
}
}
console.log(nr + " is prime");
return true;
}
}
//console.log("isItPrime(" + num + ") returns " + isItPrime(num));
for (let k = 0; k<numList.length; k++) {
if (isItPrime(numList[k])===true) {
console.log ("in the loop we got "+ numList[k]);
primeList.push(numList[k]);
}
}
console.log("primeList is " + primeList);
for (let m = 0;m < primeList.length; m++) {
primeSum+= primeList[m];
}
console.log("the sum is " + primeSum);
return primeSum;
}
sumPrimes(18);
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/sum-all-primes