判断一个数字是不是质数并打印

132 阅读1分钟
   // 声明一个弹窗 可以获取数字
        var num = prompt('请输入一个数字');
        // 假设这个是质数
        var a = true;
        // 最小的的质数是 2 所以声明最小的 2 
        for (var i = 2; i < num; i++) {
            // 判断 如果能被整除就是质数
            if (num % i == 0) {
                // 如果能被整除则取反a
                a = false;
            }
        };
        // 如果没有进入循环体 那么a=true
        if (a) {
            alert('是质数')
            //   否则就是 false
            // if(a==false) 可以不写
        } else if (a == false) {
            alert(num + '不是质数')
        }

 <script>
        // 循环100内的数 质数最小的 是 2
        for (var i = 2; i <= 100; i++) {
            // 假设是质数
            var a = true;
            // 每一个数取余一下做判断
            for (var j = 2; j < i; j++) {
                // 判断能不能取余
                if (i % j == 0) {
                    a = false;
                }
            }
            // 如果是正常的就打印
            if (a) {
                console.log(j)
            }
        }


    </script>

优化:使用 Math.sqrt()开方函数,可以提升性能

 <script>
        // 打印100以内质数
        for (let i = 0; i <= 100; i++) {
           let  z = true;
            // Math.sqrt(i) 开方函数 缩小取值范围 优化性能
            for (let y = 2; y <= Math.sqrt(i); y++) {
                 // 如果取余为0 就不是质数
                if (i % y == 0) {
                    z = false;
                    // break;
                }
                if (z) {
                    // console.log(this.z)
                    console.log(i)
                }
                // console.log(z)
            }

        }
    </script>