用js实现求指定个数的质数
Posted 我不想平庸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用js实现求指定个数的质数相关的知识,希望对你有一定的参考价值。
<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实现求指定个数的质数的主要内容,如果未能解决你的问题,请参考以下文章