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