Sum All Primes

求小于等于给定数值的质数之和。

只有 1 和它本身两个约数的数叫质数。例如,2 是质数,因为它只能被 1 和 2 整除。1 不是质数,因为它只能被自身整除。

给定的数不一定是质数。

 

注意: 
for(var i=2;i<=Math.sqrt(num);i++)这里进行了部分优化,可以减少循环次数: 
判断一个数是否是质数,只需要判断是否能被2~√num整除即可。

 

//判断num是否是质数
function isPrime(num){
  //标记是否是质数,初始值是true
  var flag=true;
  //质数:只能被1和本身整除
  //如果num可以整除2~Math.sqrt(num)中的任意一个数,则num不是质数,改变标记flag,并终止循环
  for(var i=2;i<=Math.sqrt(num);i++){
    if(num%i===0)
    {
      flag=false;
      break;
    }
  }
  return flag;
}

function sumPrimes(num) {
  var sum=0;
  //循环判断i=2~num是否是质数,如果是,与sum求和
  for(var i=2;i<=num;i++){
    if(isPrime(i))
      sum+=i;
  }
  return sum;
}

sumPrimes(10);
原文地址:https://www.cnblogs.com/fffangrui/p/6114070.html