Javascript 如何针对FCC环境优化项目euler#10问题?
//下面的代码在我的编辑器中生成准确的答案,但我希望优化代码以通过freecodecamp环境中的测试。有人能解释这个问题吗Javascript 如何针对FCC环境优化项目euler#10问题?,javascript,optimization,primes,Javascript,Optimization,Primes,//下面的代码在我的编辑器中生成准确的答案,但我希望优化代码以通过freecodecamp环境中的测试。有人能解释这个问题吗 function isPrime(param) { if (param == 2) { return true; } if (param % 2 == 0) { return
function isPrime(param) {
if (param == 2) {
return true;
}
if (param % 2 == 0) {
return false;
}
var max = Math.ceil(Math.sqrt(param));
for (var i = 3; i <= max; i += 2) {
if (param % i == 0) {
return false;
}
}
return true;
}
function primeSummation(n) {
var primeArr = [];
for (var i = 2; i < n; i++) {
if (isPrime(i)) {
primeArr.push(i);
}
}
var sumArray = primeArr.reduce(function add(a, b) {
return a + b;
}, 0);
console.log(sumArray)
return sumArray;
}
primeSummation(2000000);
函数isPrime(param){
如果(参数==2){
返回true;
}
如果(参数%2==0){
返回false;
}
var max=Math.ceil(Math.sqrt(param));
对于(var i=3;i当你有一个长范围的自然数(1…n)要检查它们是否为素数,那么像使用isPrime
那样单独测试它们是没有效率的。在该范围内执行测试,然后从结果数组中计算总和将更有效。您可以检查此项以确定数字是否为素数。
的正常也比re更好duce
欢迎来到StackOverflow。很高兴你加入了训练营。有很多东西需要学习,我祈祷着。如果你在寻找计算素数的最佳算法,这个问题在StackOverflow上已经得到了回答:我会给iPrime函数primarr,在你检查每一个奇数的素数的时候数