【FCC】Sum All Primes求质数的和
生活随笔
收集整理的這篇文章主要介紹了
【FCC】Sum All Primes求质数的和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
求小于等于給定數值的質數之和。
質數是一個大于1的整數,
只有 1 和它本身兩個約數的數叫質數。例如,2 是質數,因為它只能被 1 和 2 整除。1 不是質數,因為它只能被自身整除。
給定的數不一定是質數。
要求:
sumPrimes(10) 應該返回一個數字。
sumPrimes(10) 應該返回 17。
sumPrimes(977) 應該返回 73156。
代碼:
<script type="text/javascript">
function sumPrimes(num) {
var p = [];
for (var i = 2; i <= num; i++) {
var flag = true;
for (var j = 2; j < i; j++) {
if (i % j === 0) {
flag = false;
break;
} //只有有其他約數就可以跳出循環了
}
if (flag) {
p.push(i);
}
}
return p.reduce(function(sum, cur) {
return sum + cur;
});
}
sumPrimes(977);
</script>
不過求質數之和其實有方法上的簡化,一個數若可以進行因數分解,那么分解時得到的兩個數一定是一個小于等于sqrt(n),一個大于等于sqrt(n),據此,上述代碼中并不需要遍歷到n-1,遍歷到sqrt(n)即可,因為若sqrt(n)左側找不到約數,那么右側也一定找不到約數
作者:zooeydotmango
鏈接:https://www.jianshu.com/p/66220cb7977d
總結
以上是生活随笔為你收集整理的【FCC】Sum All Primes求质数的和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【FCC】Sum All Odd Fib
- 下一篇: 【FCC】Smallest Common