【Javascript】计算数列中小于等于num的所有质数之和
2017-11-30 本文已影响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.