Cela peut être un post stupide, mais je n'arrive pas à comprendre pourquoi mon code ne fonctionne pas correctement. Pour le compte rendu, j'ai déjà écrit un code différent qui fonctionne, mais je ne comprends toujours pas pourquoi celui-ci ne fonctionne pas.Classique Numéro JS Prime
Pourquoi la seconde instruction if
est-elle toujours vraie?
https://jsfiddle.net/vhdh5x3d/2/
/* This code doesn't work... */
var testNumber = prompt("Please enter a number you'd like to test");
for (var i = 2; i < testNumber; i++) {
if (testNumber % i == 0) {
document.getElementById("test-results").innerHTML = "Your number, " + testNumber + ", is not a prime number.";
}
if ((testNumber - 1) == i && testNumber % i != 0) {
document.getElementById("test-results").innerHTML = "Congratulations! Your number, " + testNumber + ", is a prime number!";
}
}
'x% Mathématiquement x-1' est toujours non-zéro lorsque x'> 2'. Quelle est la condition supposée tester? – JJJ
Vous écrasant le résultat dans chaque boucle for? –
Votre problème de boucle est simple. La première instruction if peut s'avérer vraie plusieurs fois, mais vous frapperez toujours la seconde. Donc, éventuellement, les conditions sont remplies que «je» augmente. Vous avez besoin d'une pause dans votre première déclaration if.De plus, il existe de meilleurs moyens pour obtenir des nombres premiers. – SpYk3HH