zoukankan      html  css  js  c++  java
  • 用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!!!

  • 相关阅读:
    读取XML字符串到临时表
    Golang学习笔记
    Golang环境配置Centos
    IntelliJ Idea 常用快捷键列表
    Elasticsearch的Groovy Script自定义评分检索
    MSSQL读取xml字符串到临时表
    通过反射给对象属性动态赋值总结(含可空属性)
    。。。。。
    指定位置输出函数
    DBhelper
  • 原文地址:https://www.cnblogs.com/liwuming/p/10292917.html
Copyright © 2011-2022 走看看