【发布时间】:2020-09-02 09:59:23
【问题描述】:
问题
素数是一个大于 1 的整数,只有两个除数:1 和它自己。例如,2 是质数,因为它只能被 1 和 2 整除。相反,4 不是质数,因为它可以被 1、2 和 4 整除。
重写 sumPrimes 使其返回所有小于或等于 num 的素数之和。
我的尝试
const isPrime = a => {
for(let i = 2; i < a; i++)
if(num % i === 0) return false;
return a > 1;
}
function sumPrimes(num, total = []) {
let numVar = num;
let n = total.reduce((aggregate, item)=>{
return aggregate + item;
}, 0);
if(n > numVar){
return n;
}
for(let i = 1; i <= numVar; i++){
if(isPrime(i)== true){
total.push(i);
}
}
return sumPrimes(num, total);
}
sumPrimes(10);
问题
上面写着:'Num is not defined'
我不确定是否还有其他错误。
我的问题
请你帮我找出错误,并修复代码以解决算法?
【问题讨论】:
-
因为
num没有在isPrime中定义?
标签: javascript algorithm recursion