用原生JS判断素(质)数,并找出100~1000之间的所有素(质)数

素数:又称质数,即“大于1,且只能被1和它本身整除的数”

步骤构思:
1、for遍历循环找其他约数
2、if设置满足条件(计数器从2开始,不包括它本身)有则中断输出

需求一:判断素(质)数

    function primeNum(num) { // 声明命名函数(形参)
        var flag = true; // 变量储存=条件为真
        for (var i = 2; i < num; i++) { // for设置循环体,遍历是否存在其他约数(素数:从2开始只能被1和自身整除)
            if (num % i === 0) {
                flag = false
                break // 存在则终止执行并返回输出
            }
        }
        return flag // 返回该变量的真假值
    }
    var values = primeNum(9) // 用数字9来测试
    console.log(values); // false


需求二:找出100~1000之间的所有素(质)数

    var primeNum = [] // 该区间所有素数的集合就是一个数组
    var i = 0;
    var count = 0; // 计算素数的个数
    for (i = 100; i <= 1000; i++) {
        var j = 0;
        for (j = 2; j < i; j++) { // 素数需条件"大于1,且只能被1和它本身整除的数"
            if (i % j === 0) { // 能被其他数整除则为非质数,终止遍历
                break;
            }
        }
        if (j >= i) { // !JavaScript没有"块级作用域",变量j在for循环赋值结束后仍存在于"外部环境"!
            count++; // 计算素数的个数
            primeNum.push(i) // 累计追加的素数
        }
    }
    console.log('共有素数' + count + '个');
    console.log(primeNum); // 输出目标结果数组


posted @ 2020-09-25 23:39  MaricoCheung  阅读(1110)  评论(0编辑  收藏  举报