我正在尝试编写一个函数来确定一个值是否为质数,然后显示一条消息来提供结果。不幸的是,它不能工作--没有显示错误消息,我看不出一个合理的原因。(对于info,它调用了我独立测试过的函数numbers(),它是有效的-它提供了一个正整数)。我对javascript不是很有经验,但我已经通过在线学习开发了下面的代码。任何指向正确方向的指针都将不胜感激。
function validate() {
var message = "This number is ";
var number;
var value = numbers();
var indicator = true;
for (int i=2; i <= value/2; i++) {
number = value % i;
if (number==0) {
indicator = false;
//or indicator = number % 2 != 0;
break;
}
}
if (indicator) {
message += "a prime number.";
}
else {
message += "not a prime number.";
}
document.getElementById('text').innerHTML = message;
}发布于 2016-06-24 11:04:05
仅素数的偶数为2,因此丢弃所有其他可被2整除的
所以你能做的就是像下面这样写一个方法:
function isPrime(number) {
if (number === 2) return true;
if (number % 2 === 0) return false;
var flag = true;
var i, length = Math.ceil(Math.sqrt(number));
for (i = 3; i <= length; i += 2) {
if (number % i === 0) {
flag = false;
break;
}
}
return flag;
}发布于 2016-06-24 11:04:44
在for循环中将int替换为var
for (var i=2; i <= value/2; i++) {
https://stackoverflow.com/questions/38004913
复制相似问题