计算某个范围内质数之和(数组的every()方法、reduce()方法)

100 阅读1分钟
  • 初始无数组,只提供一个范围的最大值,范围的最小值默认为最小的质数2

  • 根据提供的最大值,写一个函数,求出小于等于最大值的所有质数之和

  • 例如:sumPrimes(10) 应该返回 17.

  • 代码:

    sumPrimes(num) {
        let primes = []; //自创一个空数组,用来保存所有的质数
        
        for( let i = 2; i <= num; i++) { //如果i是质数,则把它放入数组
            if (primes.every(prime => i % prime) //如果i%prime=0,则i不是质数,反之也成立
                primes.push(i);
        }
        //求所有质数之和
        return primes.reduce((prev, item) => prev + item, 0); //累加的默认值应该就是0,可设可不设
    }