Тестирование на простое число. Значения, не помещаемые в массив

#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();