FCC 中級算法題 所有素數之和
阿新 • • 發佈:2017-08-05
str arr obj http blog java ble tar sum
Sum All Primes
求小於等於給定數值的質數之和。
只有 1 和它本身兩個約數的數叫質數。例如,2 是質數,因為它只能被 1 和 2 整除。1 不是質數,因為它只能被自身整除。
給定的數不一定是質數。
For Loops
Array.push()
思路:
找出從0到num之間所有的質數,然後遍歷累加;
知識點:
質數除2到自己本身(不包含)都不會整除;
失誤:
我把拿來確定a是否可以整除的b放到了全局中,這導致a每次循環但b的值不會變化,後來我將b聲明到了a的循環中;
代碼:
1 function sumPrimes(num) { 2 var arr = [2]; 3var idx = 0; 4 for (var a = 3; a <= num; a++) { 5 var b = 0; 6 for (var i = 2; i < a; i++) { 7 if (a % i === 0) { 8 b = 1; 9 break; 10 } 11 } 12 if (b === 0) { 13 arr.push(a); 14 }15 } 16 17 for (var j = 0; j < arr.length; j++) { 18 idx += arr[j]; 19 } 20 return idx; 21 } 22 23 sumPrimes(10);
FCC 中級算法題 所有素數之和