HOWTO · JavaScript

isPrime in JavaScript

In diesem Tutorial erfahren Sie, wie Sie in JavaScript überprüfen, ob eine Zahl eine Primzahl ist.

Eine Primzahl ist höher als eins mit zwei Faktoren - eins und sich selbst. Das bedeutet, dass Primzahlen immer einen Rest hinterlassen, wenn sie durch andere Zahlen geteilt werden. Die anderen Zahlen größer als eins mit mehr als zwei Teilern heißen zusammengesetzte Zahlen.

In diesem Artikel werden verschiedene Methoden besprochen, um zu überprüfen, ob eine Zahl in JavaScript eine Primzahl ist.

Naive Lösung zum Überprüfen, ob eine Zahl in JavaScript eine Primzahl ist

Der einfachste Weg, um zu überprüfen, ob eine Zahl n eine Primzahl ist, besteht darin, von 2 bis n-1 zu iterieren und dann zu prüfen, ob n durch jede von ihnen teilbar ist.

function isPrime(n) {
  if (n <= 1) return false;
  for (var i = 2; i <= n - 1; i++)
    if (n % i == 0) return false;
  return true;
}

console.log(isPrime(70));
console.log(isPrime(23));

Zeitkomplexität

Wir iterieren n-2 Mal von 2 bis n-1. Die Zeitkomplexität dieser Lösung ist O(n).

Raumkomplexität

Die Raumkomplexität dieser Lösung ist O(1).

Quadratwurzellösung zum Überprüfen, ob eine Zahl in JavaScript eine Primzahl ist

Die obige Lösung kann verbessert werden, indem nur bis sqrt(n) iteriert wird. Es basiert auf der Tatsache, dass sqrt(n) * sqrt(n) = n ist, und dass mindestens ein Faktor kleiner als gleich sqrt(n) sein muss. Wenn wir keinen Faktor im Bereich [2, sqrt(n)] finden können, bedeutet dies, dass die Zahl n eine Primzahl ist.

function isPrime(n) {
  if (n <= 1) return false;
  for (var i = 2; i <= Math.sqrt(n); i++)
    if (n % i == 0) return false;
  return true;
}

console.log(isPrime(70));
console.log(isPrime(23));

Zeitkomplexität

Da wir die ersten sqrt(n)-Potenzialfaktoren iterieren, ist die Zeitkomplexität der obigen Lösung sqrt(n).

Raumkomplexität

Die Raumkomplexität dieser Lösung ist O(1).