Это может быть глупый пост, но я не могу понять, почему мой код работает неправильно. Для записи я уже писал другой код, который работает, но я до сих пор не понимаю, почему этого нет.Classic JS Prime Number
Почему заявление второго if
всегда передается как истинное?
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!";
}
}
Математически 'х% х-1' всегда отлична от нуля, когда' х> 2'. Какое условие должно проверяться? – JJJ
Вы переопределяете результат в каждом цикле? –
Ваша проблема с циклом проста. Первый оператор if может оказаться истинным много раз, но вы всегда будете поражать второй. Поэтому в конечном итоге условия выполняются как 'i'. Вам нужно перерыв в вашем первом заявлении if.Кроме того, есть намного лучшие способы получить простые числа – SpYk3HH