#javascript #arrays #numbers
#javascript #массивы #числа
Вопрос:
Я пытаюсь поместить значения в массив, затем, если массив содержит только два значения, объявите его как простое число. По какой-то причине цикл for, похоже, не отправляет никаких значений в массив…
function primeOrNot() {
var input = parseInt(prompt('Please, give me a number'));
var list = [];
list.push(1);
list.push(input);
for (var i = 2; i < input / 2; i ) {
if (Math.floor(input / i) == input / i) {
list.push(i);
}
if (list.length == 2) {
alert('The number you chose is a prime number.');
} else 'The number you chose is not a prime number. You lose.';
}
console.log(list);
}
primeOrNot();
Комментарии:
1. Также есть вероятность, что моя математика в цикле for неверна, я все еще пытаюсь разобраться в этом!
2. измените
== 2
на>=2
, чтобы увидеть, что у вас есть
Ответ №1:
Вам не хватает закрытия }
в else
. Это работает:
function primeOrNot() {
var input = parseInt(prompt("Please, give me a number"));
var list = [];
list.push(1);
list.push(input);
for(var i=2; i<input/2; i ){
if (Math.floor(input/i) == input/i) list.push(i);
}
if(list.length == 2){
alert("The number you chose is a prime number.");
} else alert("The number you chose is not a prime number. You lose.")
console.log(list);
}
primeOrNot();