Ich bin ein Anfänger und versuche, eine Primzahl-Test zu absolvieren, aber ich renne in ein Problem. Hier ist, was ich habe:Problem mit Primzahl Test Javascript
var n = Number(prompt("Input the number you want to check for prime:"));
var i;
if (n < 2) {
alert(n + " is not a prime number.");
}
for (var i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
alert(n + " is not a prime number.");
break;
}
else {
alert(n + " is a prime number.");
break;
}
}
Es ist richtig, außer einer Warnung ausgeführt wird nicht Pop-up, wenn ich Eingang 3 oder 2 und eine beliebige Anzahl mit einem 3 in es kommt wieder als Primzahl auch wenn es isn t. Ansonsten haben alle meine Tests funktioniert.
2 und 3 sind beide Prime, und das Problem ist die Art, wie Sie Ihre Schleife strukturiert haben. Es bricht beim ersten Mal aus der Schleife aus, da du auch innerhalb des Elbs brichst. Was stattdessen passieren sollte, ist, dass die abschließende Aussage außerhalb der Schleife liegen sollte. Sie müssen die Prüfung auch vollständig abbrechen, daher empfehle ich entweder a) das Umbrechen als Funktion, so dass Sie 'zurückkommen 'können, oder b) ein Flag setzen, anstatt sofort zu alarmieren, also' isPrime = true; break; ', dann überprüfe später, ob' isPrime === true' ist. –
Das liegt daran, dass Sie nicht alle Teiler getestet haben, wenn Sie ankündigen, dass "n" prim ist. –