dabocaiqq
2018-11-11 05:58
采纳率: 66.6%
浏览 889
已采纳

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳
    打赏 评论
  • skyoneking 2018-11-11 08:00

    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))

    打赏 评论
  • 程序小白一枚 2018-11-12 14:39

    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))
        //差不多少了一半的循环
    
    打赏 评论

相关推荐 更多相似问题