JavaScript判断一个随机数是否为质数(两种方法)

796 阅读1分钟

质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除,思路;需要判断质数,除了1和自己外,小于自身且不为一的数都需要除以该数一下,这时候就需要用到循环,在循环里面判断是否有被除尽的自然数,有的话则不是质数,善于运用“假设法”假设所有数都是质数,然后再证明是否满足不是质数的条件。

<body>
    <fieldset>
        <!-- 表单字段集 -->
        <legend>
            判断质数
        </legend>
        <button id="btn1">随机数</button>
        <input type="text" id="inp">
        <button id="btn2">判断</button>
    </fieldset>
    <script>
        //拿对象
        var oInp = document.getElementById("inp");
        var oBtn1 = document.getElementById("btn1");
        var oBtn2 = document.getElementById("btn2");
        //绑定点击产生随机数
        oBtn1.onclick = function() {
            var a = Math.floor(Math.random() * 100);
            var b = 0;
            inp.value = a;
            //绑定点击开始判断
            oBtn2.onclick = function() {
                if (a == 0 || a == 1) {
                    b = 1;
                }
                for (var i = 2; i < a; i++) {
                    //判断是否有出1和自己之外的数,被除尽,有的话b就会被赋值,没有的话,b的值还是0
                    if (a % i == 0) {
                        b = 1;
                    }
                }
                if (b == 0) {
                    alert(a + "是质数")
                } else {
                    alert(a + "不是质数")
                }
            }
        }
    </script>
</body>

image.png

第二种,运用break,跳出循环,一旦循环里判断,执行了break跳出,那么这个数就不是质数了。

<script>
        var n = 12;
        for (var i = 2; i < n; i++) {
            if (n % i == 0) {
                //运用Break,一旦出现跳出循环,i肯定小于n,所以就不是质数
                break
            }
        }
        //三目运算
        i == n ? alert(n + "是一个质数") : alert(n + "不是一个质数")
    </script>