javascrrpt怎么计算100以内所有素数的值,用log打印输出

javascrrpt怎么计算100以内所有素数的值,用log打印输出

问题描述:

javascrrpt怎么计算100以内所有素数的值,用log打印输出javascrrpt怎么计算100以内所有素数的值,用log打印输出

function prime(max, min){ // max: 最大值 -- min: 最小值
if(typeof(max) === 'number' && typeof(min) === 'number') {
// 判断输入的值是否异常
min = min >= 2 ? Math.floor(min) : 2;
max = max >= min ? Math.floor(max) : min - 1;
const arr = []; // 输出的素数数组
for(let i = min; i <= max; i++) {
let count = 0; // 计数
for(let j = 2; j <= i; j++) {
i % j || count++; // i能能整除j就记一次数
}
count === 1 && arr.push(i) // 将素数加入数组
// console.log(i); // 打印
}
return arr;
}else {
console.log('请输入数值');
}
}
console.log(prime(122, 23))

function prime(max, min){ // max: 最大值 -- min: 最小值
if(typeof(max) === 'number' && typeof(min) === 'number') {
// 判断输入的值是否异常
min = min >= 2 ? Math.floor(min) : 2;
max = max >= min ? Math.floor(max) : min - 1;

            const arr = []; // 输出的素数数组
            for(let i = min; i <= max; i++) {
                let count = 0; // 计数
                if(i==3||i==2){
                    arr.push(i)
                }else{
                    let n=parseInt(i/2);
                    for(let j = 2; j <= n; j++) {
                        i % j || count++; // i能能整除j就记一次数
                    }
                    count === 0 && arr.push(i) // 将素数加入数组
                }

            }
            return arr;
        }else {
            console.log('请输入数值');
        }
    }
    console.log(prime(100, 1))
    //差不多少了一半的循环