Wie kann ich die Summe aller Primzahlen?

Arbeite ich an einer übung, um die Summe aller Primzahlen von 2 bis der parameter. Ich habe gearbeitet, so weit in den code, bin aber stecken geblieben. Ich glaube, dass durch die Verwendung der splice-Funktion, ich bin eigentlich überspringen eines Elements aufgrund einer geänderten Indizes.

function sumPrimes(num) {
  var primearray = [];
  var sum = 0;
  for(var i =2; i <= num; i++){
    primearray.push(i);
  }

  for(var j = 0; j < primearray.length; j++) {
    console.log(primearray[j]);
    if ((primearray[j]%2===0) && (primearray[j] >2)) {
      primearray.splice(j,1);
    } else if ((primearray[j]%3===0) && (primearray[j] > 3)) {
      primearray.splice(j,1);
      console.log(primearray);
    } else if ((primearray[j]%5===0) && (primearray[j] > 5)) {
      primearray.splice(j,1);
    } else if ((primearray[j]%7===0) && (primearray[j] > 7)) {
      primearray.splice(j,1);
    }
  }
  sum = primearray.reduce();
  return sum;
}

sumPrimes(30);

Habe ich nicht verwertet, reduzieren " Funktion noch nicht, weil ich arbeite noch immer an der if-else-Anweisungen.

  • Es ist selten eine gute Idee, um Chaos mit einer Sammlung, während Sie versuchen, zu Durchlaufen es. Warum nicht prüfen, ob eine Zahl eine Primzahl ist, bevor Sie schieben Sie es auf das array?
  • Wie finde Primzahlen zwischen 0 - 100? in JavaScript
  • ^ Was Matt sagte. Ich denke, Sie können das problem beheben, nur durch Dekrementieren j wenn Sie splice etwas aus der Reihe. Aber ich sehe nicht ein, warum Sie es tun auf diese Weise. Es wird nicht die Skala, auf alle.
InformationsquelleAutor Eric Park | 2015-06-24
Schreibe einen Kommentar