用JavaScript去找出一个数组里的所有素数(质数)

    xiaoxiao2022-07-04  183

    var x, //定义一个变量x r, arr = []; //定义一个空数组 for (x = 1; x < 100; x++) { arr.push(x); //把1-100依次放到数组arr中 } function get_primes(arr) { return arr.filter(function(val){ //用js的高阶函数filter把数组中不是素数的过滤掉 for(let i=2;i<val;i++){ if(val%i===0){ return false; //除了1和本身还有其他因素的,则返回false } } return val>1; //素数是正整数,而且1不是素数。 }) } r = get_primes(arr);

     方法二:

    var x, //定义一个变量x r, arr = []; //定义一个空数组 for (x = 1; x < 100; x++) { arr.push(x); //把1-100依次放到数组arr中 } function get_primes(arr) { return arr.filter((n)=>{ if(n<3){ return n > 1; } for(let i = 2;i<=Math.sqrt(n);i++){ if(n % i === 0){ return false; } } return true; }); } r = get_primes(arr);

    方法三:

    var x, //定义一个变量x r, arr = []; //定义一个空数组 for (x = 1; x < 100; x++) { arr.push(x); //把1-100依次放到数组arr中 } function get_primes(arr) { return arr.filter( x => { let result = true; let end = Math.sqrt(x); let flag = 0; for (let i = 2; i <= end; i++) { if (x % i == 0) { flag = 1; break; } } if (x == 1) { //单独判断1是不是素数 result = false; } else if (flag == 0) { //素数 result = true; } else { //合数 result = false; } return result; } ); } r = get_primes(arr);

    还有其他很多种办法可以实现去判断一个数组里的哪些元素是素数,大家也可以贴出自己的方法,来一起交流,一起进步,如有不对的地方,欢迎指教。

    最新回复(0)