用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实现求指定个数的质数的主要内容,如果未能解决你的问题,请参考以下文章

求100内质数的个数

求一个范围内的质数或判断一个数是不是质数

求任意两个数间的质数个数

求最大公约数伪代码

求小于n的质数个数

为什么求模运算要用素数(质数)