【发布时间】:2015-03-03 22:25:23
【问题描述】:
我必须将数组中的所有索引都设置为1。然后我必须找到哪些索引不是素数并将它们设置为0。然后打印出数组中所有等于1的索引(素数)。
如果不是素数,我无法获得将索引设置为 0 的部分。我现在的输出是它只打印 2-100 的每个数字。你能帮我弄清楚确定索引是否为素数的条件吗?
<script>
var primeArray = new Array();
for(var i = 0; i < 101; i++){
primeArray[i] = 1;
//document.writeln(" " + primeArray[i]);
}
primeArray[0] = 0;
primeArray[1] = 0;
//document.writeln("" +primeArray[0]);
//document.writeln("" +primeArray[1]);
for(var j = 2; j < 101; j++){
if(primeArray[j] == 1){
for(var k=j+1; k<101; k++){
//var test = j%k;
//document.writeln("" + test);
if(j%k == 0){
primeArray[j]=0;
}
}
}
//if(primeArray[j] == 1){
//document.writeln("" + primeArray);
//}
}
document.writeln("" + primeArray)
</script>
【问题讨论】:
-
哪些数字不是质数?嗯,是一个或多个是素数的数的倍数。所以可以从 2 开始,把 2 的所有倍数设置为 0。然后检查 2 之后的下一个单元格。是1吗?是的,因为 3 不是 2 的倍数。所以现在将 3 的所有倍数设置为 0。重复直到你通过整个数组。
标签: javascript primes