首页 > 解决方案 > 测试素数。值未推入数组

问题描述

我试图将值推入数组,然后如果数组只包含两个值,则将其声明为质数。出于某种原因,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();

标签: javascriptarraysnumbers

解决方案


您缺少}. 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();


推荐阅读