美文网首页Web 前端开发 让前端飞
【Javascript】计算数列中小于等于num的所有质数之和

【Javascript】计算数列中小于等于num的所有质数之和

作者: 雨水之后 | 来源:发表于2017-11-30 14:24 被阅读0次
    function sumPrimes(num) {
    
      var sum = 0;
      var arr = [];  //储存初始数列
      var primes = [];  //储存质数数列
    
      //生成初始数列
      for(var i=1;i<=num;i++){
        arr.splice(i,0,i);
      }
    
      //判断是否质数
      function isPrime(n) {
        if (n <= 3) { return n > 1; }
        if (n % 2 === 0 || n % 3 === 0) { return false; }
        for (var  i = 5; i * i <= n; i += 6) {
            if (n % i === 0 || n % (i + 2) === 0) { return false; }
        }
        return true;
      }
    
      //生成质数数列
      for(var j=0;j<arr.length;j++){
        if(isPrime(arr[j])){
          primes.splice(arr[j],0,arr[j]);
        }
      }
    
      //求和
      sum = primes.reduce((a,b)=>a+b);
    
      return sum;
    }
    

    验算:

    sumPrimes(13); //result: 41
    

    THE END.

    相关文章

      网友评论

        本文标题:【Javascript】计算数列中小于等于num的所有质数之和

        本文链接:https://www.haomeiwen.com/subject/nsyvbxtx.html