JS 判断一个数是否是质数(两种办法)

首先什么质数? 质数就是大于一的自然数中,只能被自己和1整除的数。了解了这个 很容易就能写出判断条件

普通写法:

function isPrime(num) {
    // 只要2到num - 1 之间有一个数能被num整除 那么就不是质数
        for (let i = 1; i < num; i++) {
            if (num % i === 0) {
                return false
            }
        }
        return true
    }

利用算法的写法:

     function isPrime (num) {
             //取平方根
            let temp = parseInt(Math.sqrt(num))
            //循环判断
            for (let i = 2; i <= temp; i++) {
                if (num % i === 0) {
                    return false
                }
            }
            return true
        }

原理:一个数如果可以进行因数分解,那么必定一个因数<=他的平方根 另一个因数>=他的平方根 那么只需要从2开始 到平方根为止,如果能被整除 就代表不是质数。 (拿16举例,只要能被2整除就代表能被8整除所以只用判断一边)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容