首页 > 代码库 > FCC 中级算法题 所有素数之和

FCC 中级算法题 所有素数之和

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 中级算法题 所有素数之和