Überprüfen Sie die Primzahl in JavaScript

Lesezeit: 3 Minuten

Benutzeravatar von John Ozenua
John Ozenua

Überprüfen Sie die Primzahl in JavaScript

let inputValue= 7;
let isprime=inputValue==1? false:true;  //bcoz 1 is not prime

for(let i=2;i<inputValue;i++){
  inputValue%i==0? isprime*=false :isprime*=true;
};

alert(`${inputValue} is ${isprime? 'prime':'not prime'} number`);

  • Mögliches Duplikat von Prime Numbers JavaScript

    – Nikowank

    23. Oktober 2016 um 6:12 Uhr

  • Ihre for-Schleife wird nie mehr als einmal durchlaufen.

    – Shashwat Kumar

    23. Oktober 2016 um 6:14 Uhr

  • @ShashwatKumar bitte erkläre warum und wie man das behebt

    – John Ozenua

    29. Oktober 2016 um 21:41 Uhr

  • Dies ist sehr ineffizient, verwenden Sie keine Schleifen für so etwas … Überprüfen Sie meine Antwort für die einfachste CPU-Methode, um eine Primzahl zu finden … hier

    – 255.tar.xz

    23. November 2019 um 18:25 Uhr

  • Code Stream hat Ihren Code verwendet, um für ihre Software zu werben … ich finde das lustig

    – vik

    10. Juni 2020 um 16:38 Uhr

Benutzeravatar von Geeky
Geek

Ein kleiner Vorschlag hier, warum willst du die Schleife für ganze n Zahlen laufen lassen?

Wenn eine Zahl eine Primzahl ist, hat sie 2 Teiler (1 und die Zahl selbst). Wenn es keine Primzahl ist, haben sie 1, die Zahl selbst und mehr. Sie müssen die Schleife nicht bis zur Zahl ausführen. Möglicherweise können Sie sie bis zur Quadratwurzel der Zahl ausführen.

Sie können es entweder mit Eulers Prime-Logik tun. Überprüfen Sie den folgenden Ausschnitt:

function isPrime(num) {
  var sqrtnum=Math.floor(Math.sqrt(num));
    var prime = num != 1;
    for(var i=2; i<sqrtnum+1; i++) { // sqrtnum+1
        if(num % i == 0) {
            prime = false;
            break;
        }
    }
    return prime;
}

Jetzt ist die Komplexität O(sqrt(n))

Weitere Informationen Warum prüfen wir bis zur Quadratwurzel einer Primzahl, um festzustellen, ob es sich um eine Primzahl handelt?

Ich hoffe es hilft

  • Bitte fügen Sie Ihrem Code eine Erklärung hinzu. Es hilft den Leuten, den Algorithmus zu verstehen, damit sie ihn anpassen können, anstatt nur Ihren Code zu kopieren.

    – Herr T

    15. April 2018 um 16:39 Uhr

  • Schlägt bei 9 fehl, da sqrt(9) = 3, und Ihre Schleife wird nicht aufgerufen. Versuchen i <= s

    – ZephDavies

    10. Juli 2019 um 18:17 Uhr


Coole Variante:

const isPrime = n => ![...Array(n).keys()].slice(2).map(i => !(n%i)).includes(true) && ![0,1].includes(n)

  • Was ist ` && ![0,1].enthält(Zahl)` für ? Wenn n = 1 oder 0 ist, ist es ohne diese Prüfung das gleiche Ergebnis – falsch

    – Jeremy Belolo

    1. April 2019 um 7:50 Uhr

  • Könnten Sie das etwas näher erläutern?

    – Blutrache

    4. Mai 2021 um 5:00 Uhr

  • Ineffiziente Lösung in Bezug auf die zeitliche Komplexität.

    – Ravi Chaudhary

    1. Oktober um 15:08 Uhr

Benutzeravatar von HS Progr
HS-Progr

Primzahlen haben die Form 6f ± 1, ausgenommen 2 und 3, wobei f eine ganze Zahl ist

 function isPrime(number)
 { 
   if (number <= 1)
   return false;

   // The check for the number 2 and 3
   if (number <= 3)
   return true;

   if (number%2 == 0 || number%3 == 0)
   return false;

   for (var i=5; i*i<=number; i=i+6)
   {
      if (number%i == 0 || number%(i+2) == 0)
      return false;
   }

   return true;
 }

Zeitkomplexität der Lösung: O(sqrt(n))

  • Was ist ` && ![0,1].enthält(Zahl)` für ? Wenn n = 1 oder 0 ist, ist es ohne diese Prüfung das gleiche Ergebnis – falsch

    – Jeremy Belolo

    1. April 2019 um 7:50 Uhr

  • Könnten Sie das etwas näher erläutern?

    – Blutrache

    4. Mai 2021 um 5:00 Uhr

  • Ineffiziente Lösung in Bezug auf die zeitliche Komplexität.

    – Ravi Chaudhary

    1. Oktober um 15:08 Uhr

Benutzeravatar von Marvel Moe
Wunder Moe

function isPrimeNumber(n) {
  for (var i = 2; i < n; i++) { // i will always be less than the parameter so the condition below will never allow parameter to be divisible by itself ex. (7 % 7 = 0) which would return true
    if(n % i === 0) return false; // when parameter is divisible by i, it's not a prime number so return false
  }
  return n > 1; // otherwise it's a prime number so return true (it also must be greater than 1, reason for the n > 1 instead of true)
}

console.log(isPrimeNumber(1));  // returns false
console.log(isPrimeNumber(2));  // returns true
console.log(isPrimeNumber(9));  // returns false
console.log(isPrimeNumber(11)); // returns true

  • es wäre toll, wenn du einen Link setzen würdest

    – Ezequiel de Simone

    27. Oktober 2017 um 1:28 Uhr

1430920cookie-checkÜberprüfen Sie die Primzahl in JavaScript

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy