<!DOCTYPE HTML>
<html>
<head>
<script>
var i, j, k = 1;
for (i = 3; i < 100; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
k = 0;
break
}
}
}
if (k == 1) {
alert(i);
}
</script>
</head>
<body>
</body>
</html>
&#13;
我试图在js中打印2到100的素数。但是代码没有产生预期的结果。请帮忙。谢谢。
答案 0 :(得分:0)
首先,您只需要在for循环中检查j <= (i/2)
您的if(k==1)
也需要位于外部for
循环
var i, j;
for (i = 3; i < 100; i++) {
var k = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
prime = false;
k = 0;
break;
}
}
if (k == 1) {
console.log(i);
}
}