1. 程式人生 > >FCC 中級算法題 所有素數之和

FCC 中級算法題 所有素數之和

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];
 3
var 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 中級算法題 所有素數之和