Build a Prime Number Sum Calculator - Build a Prime Number Sum Calculator

Tell us what’s happening:

In high level, does my push() then filter() good approach?
Can you suggest better approach? because I can’t pass sumPrimes(977), my filter produces lots of false positives in large numbers. Thanks you!

Your code so far

function sumPrimes(num) {

  if (num < 2) return 0;

  const arr = []; 

  // push all digits before num
  for (let i = num; i > 0; i--)
  {
    arr.push(i);
  }

  // filter by prime
  const filtered = arr.filter((num) => {
    console.log()
    console.log("num: " + num);

    let successDivideCounter = 0;
    
    // divide to see who's divisible
    for (let i = 2; i < num; i++) {
      if (Number.isInteger(num / i)) {
        console.log("i: " + i + " quotient: " + num / i)
        if (i === 2) {
          successDivideCounter += 2;
        } else if (i === 9 && num >= 18) {
          successDivideCounter += 2;
        } else if (i === 8 && num >= 16) {
          successDivideCounter += 2;
        } else if (i === 7 && num >= 14) {
          successDivideCounter += 2;
        } else if (i === 6 && num >= 12) {
          successDivideCounter += 2;
        } else if (i === 5 && num >= 10) {
          successDivideCounter += 2;
        } else if (i === 4 && num >= 8) {
          successDivideCounter += 2;
        } else if (i === 3 && num >= 6) {
          successDivideCounter += 2;
        } else {
          successDivideCounter++;
        }
      } else {
        console.log(num / i)
      }
    }
    console.log("success divides: " + successDivideCounter);
    return successDivideCounter < 2;
  })
  
  filtered.pop(); // remove 1
  filtered.push(2); // add 2

  console.log(JSON.stringify(filtered));
  
  const sum = filtered.reduce((acc, curr) => curr + acc, 0);
  
  return sum;
}

console.log("final: " + sumPrimes(977));
// res 1: 246,903
// res 2: 192,041
// res 3: 164,596
// res 4: 127,738
// res 5: 108,789
// expected: 73,156

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36

Challenge Information:

Build a Prime Number Sum Calculator - Build a Prime Number Sum Calculator

Hi @raffyabydc

When I return sum - 2 tests one to five can pass.

successDivideCounter approach doesn’t seem to work for large numbers.

You don’t need to store all numbers below numin arr, just primes.

Happy coding

1 Like

Yeaah, I gotta find that out how to do it. I need to extract my brain how to know if that number is prime or not without having to brute force division like I did.

Thank you, I’ve solved it now, turned out I know how to determine if it’s prime by using the modulo operator. Refactored some code from August 23, daily challenges, which I’ve done last last week.

1 Like