循环练习

练习一:质数相关

题目:在页面中接收一个用户输入的数字,并判断该数是否是质数。

方法一 代码实现:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title></title>
        <script type="text/javascript">
            /*
            质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须是大于1的自然数。
         */

            const num = prompt('请输入一个大于1的整数:');

            //判断这个值是否合法
            if (num <= 1) {
                alert('该值不合法!');
            } else {
                //先用flag标志位,来保存当前的数的状态
                //默认当前num是质数
                let flag = true;

                //判断num是否是质数
                //获取2-num之间的数
                for (let i = 2; i < num; i++) {
                    //console.log(i);
                    //判断num是否能被i整除
                    if (num % i == 0) {
                        //一旦发现:如果num能被i整除,则说明num一定不是质数,
                        //此时:设置flag为false,然后跳出 for 循环
                        flag = false;
                        break;
                    }
                }

                //如果num是质数则输出
                if (flag) {
                    alert(num + '是质数!!!');
                } else {
                    alert('这个不是质数');
                }
            }
        </script>
    </head>

    <body></body>
</html>

方法二 代码实现:

//方法一的简化
var num = parseInt(prompt("输入一个数字"))
            for (var i = 2; i < num / 2 + 1; i++) {
                if (num % i == 0) {
                    alert("不是质数")
                } else {
                    alert("是质数")
                }
                break;
            }

方法三 代码实现:

 //思路:质数只有1和它本身两个因数,所以只需判断因数的个数就可以确定是不是质数
var num2 = parseInt(prompt("输入一个数字"))
                var count = 0  //用来统计因数的个数
                for (var i = 1; i <= num2; i++) {
        
                    if (num2 % i == 0) {
                        console.log(i)
                        count++
                    }  
                }
                console.log(count)
                if (count == 2) {
                    alert("是质数")
                }

练习二:质数相关

题目:打印 1~100 之间的所有质数

代码实现:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title></title>
        <script type="text/javascript">
            /*
             * 打印出1-100之间所有的质数
             */

            //打印2-100之间所有的数
            for (let i = 2; i <= 100; i++) {
                //创建一个布尔值,用来保存结果,默认i是质数
                let flag = true;

                //判断i是否是质数
                //获取到2-i之间的所有的数
                for (let j = 2; j < i; j++) {
                    //判断i是否能被j整除
                    if (i % j == 0) {
                        //如果进入判断则证明i不是质数,修改flag值为false
                        flag = false;
                    }
                }

                //如果是质数,则打印i的值
                if (flag) {
                    console.log(i);
                }
            }
        </script>
    </head>

    <body></body>
</html>

打印结果:

练习三:99 乘法表

代码实现:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title></title>
        <style type="text/css">
            body {
                width: 2000px;
            }

            span {
                display: inline-block;
                width: 80px;
            }
        </style>
        <script type="text/javascript">
            /*
             * 1.打印99乘法表
             *   1*1=1
             *   1*2=2 2*2=4
             *   1*3=3 2*3=6 3*3=9
             *   1*4=4 2*4=8 3*4=12 4*4=16
             *                      ....9*9=81
             *
             * 2.打印出1-100之间所有的质数
             */

            //创建外层循环,用来控制乘法表的高度
            for (let i = 1; i <= 9; i++) {
                //创建一个内层循环来控制图形的宽度
                for (let j = 1; j <= i; j++) {
                    document.write('<span>' + j + '*' + i + '=' + i * j + '</span>');
                }

                //输出一个换行
                document.write('<br />');
            }
        </script>
    </head>

    <body></body>
</html>

页面效果: