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
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
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
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
14309200cookie-checkÜberprüfen Sie die Primzahl in JavaScriptyes
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