• 技术文章 >web前端 >js教程

    JavaScript求指定范围内的质数的实现代码分享

    黄舟黄舟2017-03-18 14:51:08原创1457
    质数是大于1的自然数中,没有除了1和它自身之外其他因子的数。

    这篇帖子,将考虑如何求指定范围内的质数。

    实现函数有如下的特性:

    1.它接受2个参数,代表两个边界,比如getPrimes(0, 30),代表求030之间的所有质数。

    2.两个参数可以第一个比第二个大,比如getPrimes(30, 0),它依然代表求030之间的所有质数。

    3.两个边界值都在考虑的范围内。

    4.返回值是一个增序的数组,里面包含该范围内的所有质数。

    问题的思路:

    1.首先,需要一个判断质数的方法。

    2.对参数进行处理,判断上边界和下边界。

    3.在范围内进行顺序遍历,只要是质数就存入数组。

    代码实现:

    //判断是否为质数
    function isPrime(number) {
    	//0,1,负数肯定不是
        if(number < 2){
            return false;
        }
        var factor = Math.sqrt(number);
    	//注意:这里是"<=factor",而不是"<"
    	//比如说25,factor是5,如果用"<"就会误判
        for(var i=2;i<=factor;i++){
            if(number % i == 0){
                return false;
            }
        }
        return true;
    }
    
    //获取范围内的质数
    function getPrimes(start, finish) {
    	//确定上边界
        var max = Math.max(start, finish);
    	//确定下边界
        var min = Math.min(start, finish);
        var result = [];
    	//由小到大遍历
        for(var i=min;i<=max;i++){
    		//满足质数条件,存入数组
            if(isPrime(i)){
                result.push(i);
            }
        }
        return result;
    }
    
    //[]
    console.log(getPrimes(0, 0)); 
    //[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
    console.log(getPrimes(0, 30));
    //[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
    console.log(getPrimes(30, 0));

    以上就是JavaScript求指定范围内的质数的实现代码分享的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:JavaScript对有序链表的合并详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 手把手带你了解Angular中的依赖注入• 聊聊用pkg将Node.js项目打包为可执行文件的方法• Node实战:运用Cookie&Session进行登录验证• jQuery插件分享:Turn.js实现一个移动端电子书翻页效果• Angular学习之聊聊notification(自定义服务)
    1/1

    PHP中文网