JavaScript:打印出100以内的质数

JavaScript小练习:打印100以内的质数

质数的定义

质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。(也可定义为只有1与该数本身两个正因数的数)

如何判断一个数是否为质数

最直观的方法就是判断一个数是否能被比它小的数整除。本文中的程序就是基于这种方法编写的。

其他判断质数的方法可以参考https://blog.csdn.net/sinat_26811377/article/details/96584293

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var flag = 1;
        for(var n = 2; n < 101; n ++){
            for(var i = 2; i < n; i ++){
                if(n % i == 0){
                    flag = 0;
                    break;
                }else{
                    flag = 1;
                }
            }
            if(flag == 1){
                document.write(n + ' ');
            }
        }
    </script>
</body>
</html>

运行结果:

下面补充一种优化算法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var flag = 1;
        for(var n = 2; n < 101; n ++){
            for(var i = 2; i <= Math.sqrt(n); i ++){
                if(n % i == 0){
                    flag = 0;
                    break;
                }else{
                    flag = 1;
                }
            }
            if(flag == 1){
                document.write(n + ' ');
            }
        }
    </script>
</body>
</html>

你可能感兴趣的:(JavaScript小练习,javascript)