<script>//获取1000以内的质数function check(num){if(index%2){for(var j=2;j<index;j++){if(index%j==0){return false;}}}else{return false;}return true;}console.time("hello");var nums = [1,2];var index = 3;while(nums.length < 30){if(check(index)){nums[nums.length] = index;}index++;}console.log(nums);console.timeEnd("hello");</script>
一下代码是第一次写的
var nums = [1,2];var index = 1;while(nums.length < 30){for(var i=1;i<index;i++){if(index%2){for(var j=2;j<index;j++){if(index%j==0){break;}}if(nums[nums.length-1]<index){nums[nums.length] = index;}}else{break;}}index++;}
结果测试发现前几个质数找到了,后几个有错误,经分析是因为在一个数不是质数的时候没能跳出for,虽然知道break可以跳出for,但是对于双重for循环,break就显得不行了,此时就在思考,如何能够跳出双重for循环呢?灵机一动,突然想到了神奇的return,return就不在乎有多少层for循环了,于是乎问题就解决了!
其实最关键的就是思路问题,经验问题,如何跳出多重for循环--return!!!
用js实现求指定个数的质数
原文地址:https://www.cnblogs.com/liwuming/p/10292917.html