<script type="text/javascript"> var prime = function(len){ var i,j; var arr = []; for(i = 1; i < len; i++){ for(j=2; j < i; j++){ if(i%j === 0) { break; } } if(i <= j && i !=1){ arr.push(i); } } return arr; }; document.write(prime(100));</script>
解决方案三: <script type="text/javascript"> function getPrimes(range){ var primes = []; for(var i = 2; i <= range; i ++){ if(isPrime(i)){ primes.push(i); } } return primes; } function isPrime(pri){ var flag = true; for(var i = 2; i <= pri / 2 ; i ++){ if(pri % i == 0){ flag = false; break; } } return flag; } var primes = getPrimes(100); var msg = ""; for(var i = 1 ; i <= primes.length ; i ++){ msg += primes[i-1] + " "; if(i % 10 == 0){ msg += "n"; } } alert(msg); </script>
*********************************
有问题的代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <script type="text/javascript"> 7 8 /* 9 * 打印出1-100之间所有的质数10 */11 12 //----------------------------------------------------------------------------13 14 //打印2-100之间所有的数15 for(var i=2 ; i<=100 ; i++){16 17 //创建一个布尔值,用来保存结果,默认i是质数18 var flag = true;19 20 //判断i是否是质数21 //获取到2-i之间的所有的数22 for(var j=2 ; j<i ; j++){23 24 //判断i是否能被j整除25 if(i%j == 0){26 //如果进入判断则证明i不是质数,修改flag值为false27 flag = false;28 29 }30 31 }32 33 //如果是质数,则打印i的值34 if(flag){35 console.log(i);36 }37 38 }39 40 41 </script>42 </head>43 <body>44 </body>45 </html>
**************************************
错误输出结果为:1 2 3 4 5 6 42 43 44 45
正确输出结果为为:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
联系客服