码迷,mamicode.com
首页 > Web开发 > 详细

用js实现求指定个数的质数

时间:2019-01-19 20:11:48      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:size   false   循环   cti   asc   font   ons   bsp   var   

<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实现求指定个数的质数

标签:size   false   循环   cti   asc   font   ons   bsp   var   

原文地址:https://www.cnblogs.com/liwuming/p/10292917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!