【发布时间】:2012-11-30 07:01:21
【问题描述】:
我正在编写一个小脚本来查找并打印出从 X 到 Y 的所有素数。这是我写的:
var numX = prompt('Enter a number greater than 0:','');
var numY = prompt('Enter a number greater than ' + numX + ':','');
while (numX <= numY) {
if (numX == 1 || numX == 2 || numX == 3) {
document.write(numX + '</br>');
} else if (numX % 2 === 0 || numX % 3 === 0 || numX % 5 === 0 || numX % 7 === 0){
document.write();
} else {
document.write(numX + '</br>');
}
numX++;
};
现在,只要第一个数字是 1,它就可以正常工作。但是,如果第一个数字大于 1,它不会打印任何内容。我不确定这是否是这个问题的正确论坛(也许是数学论坛?),但我想如果有人可以帮助我,我会在这里问。我也知道筛子是解决这个问题的更好方法,但我想先尝试将其作为一个 while 循环来解决。感谢您提供任何和所有帮助!
【问题讨论】:
-
如果您的代码中的第一个数字等于
numX。您至少应该看到numX + '</br>'被写入if (numX == 1 || numX == 2 || numX == 3),因此如果第一个数字大于3,它将不会输出任何内容。低于 4 和高于 0,它会。我发现你的编码风格有点奇怪,因为if (numX == 1 || numX == 2 || numX == 3)会更易读为if (numX >= 1 && numX <= 3) -
我试过你的代码。当第一个数字大于 1 时,它仍然会打印:jsfiddle.net/YtA7q
标签: javascript