1.任务及要求
Sum All Primes
求小于等于给定数值的质数之和。
只有 1 和它本身两个约数的数叫质数。例如,2 是质数,因为它只能被 1 和 2 整除。1 不是质数,因为它只能被自身整除。
给定的数不一定是质数。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
sumPrimes(10)
应该返回一个数字。sumPrimes(10)
应该返回 17。sumPrimes(977)
应该返回 73156。
2.我的解法
1 // 方法参考:博客园:https://www.cnblogs.com/SupremeBoy/p/10241294.html 2 3 function sumPrimes(num) { 4 var sum = 0; 5 6 for(var i = 0; i <= num; i++){ 7 if(isPrime(i)){ 8 sum += i; 9 } 10 } 11 return sum; 12 } 13 14 var isPrime = function(flag){ 15 if(flag <= 1){ 16 return false; 17 } 18 if(flag ==2 || flag == 3){ 19 return true; 20 } 21 if(flag % 6 != 1 && flag % 6 != 5){ 22 return false; 23 } 24 var sqrtFlag = Math.floor(Math.sqrt(flag)); 25 for(var i = 5; i <= sqrtFlag; i +=6) { 26 if(flag % i === 0 || flag % (i+2) === 0){ 27 return false; 28 } 29 } 30 return true; 31 }; 32 33 sumPrimes(10);
3.发现的其他解法
// 简书:https://www.jianshu.com/p/66220cb7977d
// 博客园:https://www.cnblogs.com/fffangrui/p/6114070.html?utm_source=itdadao&utm_medium=referral
// CSDN:https://blog.csdn.net/weixin_30872499/article/details/99363121