Sum All Primes

What is "primes" ?    wiki entry about prime here

  質數(Prime number),又稱素數,指在大於1的自然數中,除了1和該數自身外,無法被其他自然數整除的數(也可定義為只有1與該數本身兩個因數的數)。

  function sumPrimes(num) {
  var isPrime = true;
  var arr = [];
  var result = 0;
  for(var i=2;i<=num;i++)
  {
    isPrime = true;
    for(var j=2;j<i;j++)
    {
      if((i%j) === 0 )
        isPrime = false;
    }
    if(isPrime)
    {
      arr.push(i);
      result += i;
    }

  }
  return  result;          
}
sumPrimes(10);

Solution:

題目要求是要把等/小於傳入數字的質數加總起來,而質數的定義為只有1與本身這2個因數,故需要1個for loop來對小/等於傳入數字的數進行一次次的檢查是否為質數,而如何確定一個數為質數呢? 因為質數只有2個因數也就是1跟本身這兩個因數,如果要檢查是否為質數則需要從2開始檢查是否為該數字n的因數直到n-1為止,而只要有存在一個因數則該數字n就不是質數了,故我們會設一個boolean value(isPrime)來記錄是否存在著其他因數,如果存在則isPrime的值則為false,意為此數不是質數,如果從頭到尾都沒有檢測到具有因數的話,則此數n,則為質數,另外我將所到的質數全數存入一個array之中以方便運用



P.S. / Reference:  Array.prototype.push()

results matching ""

    No results matching ""