【发布时间】:2013-06-26 21:36:28
【问题描述】:
我有以下代码可以找到从 2 到 1000 的素数:
#!/usr/bin/env node
var primesarray = function(n) {
var nums = [];
for (var i = 0; i < n; i++) {
nums.push("1");
}
return nums;
};
var primes = function(arr) {
var i = 2;
var primes = [];
for (i = 2; i < arr.length - 1; i++) {
if (arr[i] === "1")
primes.push(i);
for (j = 2; Math.pow(i, j) < arr.length - 1; j++ ) {
arr[Math.pow(i,j)] = "0";
}
}
return primes;
};
// Print to console
var fmt = function(arr) {
return arr.join(",");
};
var k = 1000;
console.log("primes(" + k + ")");
console.log(fmt(primes(k)));
当我运行文件时,它只打印第一行 console.log。我没有看到这里有什么问题。
【问题讨论】:
-
问题必须表明对正在解决的问题有最低限度的了解。告诉我们您尝试过什么,为什么它不起作用,以及它应该如何工作。在我看来,您“找到了一些代码”,但不明白它为什么起作用。 StackOverflow 不太适合这类问题。
-
没有调用“primesarray”函数。
-
你为什么使用 字符串
"1"和"0"作为标志? -
另外,你不应该计算每个新发现的素数的 power 序列 - 你想要 multiples。
标签: javascript primes