开发者社区> 问答> 正文

用js怎么判断质数

用js怎么判断质数

展开
收起
云计算小粉 2018-05-10 20:00:06 2254 0
1 条回答
写回答
取消 提交回答
  • 阿里云ping https://ping.gaomeluo.com/aliyun/

    //1、非正则实现
    function isPrime(num) {
        // 不是数字或者数字小于2
        if(typeof num !== "number" || !Number.isInteger(num)) {
            // Number.isInterget 判断是否为整数
            return false
        }
        //2是质数
        if(num == 2) {
            return true
        } else if(num % 2 == 0) {  //排除偶数
            return false
        }
        //依次判断是否能被奇数整除,最大循环为数值的开方
        var squareRoot = Math.sqrt(num)
        //因为2已经验证过,所以从3开始;且已经排除偶数,所以每次加2
        for(var i = 3; i <= squareRoot; i += 2) {
            if(num % i === 0) {
                return false
            }
        }
        return true
    }
    console.log(isPrime(19)) // true
    
    //2、用正则实现:
    function isPrime(num) {
        return !/^1?$|^(11+?)\1+$/.test(Array(num + 1).join('1'))
    }
    console.log(isPrime(19)) // true


    来源网络

    2019-07-17 22:10:48
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载