javascript - JavaScript 中的函数 isPrimeNumber

标签 javascript

我想通过在框中输入一个数字来检查它是否是素数,然后单击按钮并获取该值是素数还是不是素数。我有以下代码,但由于某种原因,我无法弄清楚为什么它不起作用 - 我得到的值是我尝试过的任何数字的素数。

function isPrimeNumber() {
  var n = document.getElementById("n").value;
  for (var i = 2; i < n; i++) {
    if (n % i === 0) {
      document.getElementById("result").value = "not a prime number";
    }
  }
  document.getElementById("result").value = "prime number";
}
<form>
  <p>
    <input type="text" id="n">
    <input type="button" value="Check if I am prime!" onclick="isPrimeNumber();">
    <input type="text" id="result">
  </p>
</form>

提前致谢!

最佳答案

使用document.getElementById("result").value="prime number";,您始终将结果设置为素数。你需要让它成为有条件的。尝试以下操作

function isPrimeNumber() {
  var n = document.getElementById("n").value;
  var isPrime = true;
  for (var i = 2; i < n; i++) {
    if (n % i === 0) {
      isPrime = false;
      break;
    }
  }
  document.getElementById("result").value = isPrime ? "prime number" : "not a prime number";
}
<form>
  <p>
    <input type="text" id="n">
    <input type="button" value="Check if I am prime!" onclick="isPrimeNumber();">
    <input type="text" id="result">
  </p>
</form>

关于javascript - JavaScript 中的函数 isPrimeNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242557/

相关文章:

javascript - 如何使 if else 中的显示功能永久覆盖隐藏功能?

javascript - 当输入新值被传递时,它不会自动影响#np 和#total_amount,直到我刷新网页

javascript - 如果文本框正确则启用按钮

javascript - 查找两个日期之间的天差(不包括周末)

javascript - 从两个不同的按钮打开菜单

php - 你将如何在 php 5.4 中实现一个基本的文件上传进度条?

javascript - GraphQL 字段作为函数

javascript - Zombie.js 单击 Javascript 链接

javascript - react : Invoke redirect to page, 并传递参数

javascript - 光滑的 JavaScript 安装在 MEAN 堆栈 ANGULAR 中