我正在編寫一個node.js腳本,它將前100個素數編寫到文件中,每個素數用逗號分隔。嘗試在Node.js中輸出素數時發生錯誤
#!/usr/bin/env node
function listPrimes(max) {
var primes = [];
var sieve = new Array(max);
for(var i = 0; i < max; i++) {
sieve[i] = true;
}
for(var p = 2; p < max; p++) {
if(sieve[p]) {
// p is prime, save it and mark p*2, p*3, etc. as non-prime
primes.push(p);
for(var t = p * 2; t < max; t += p) {
sieve[t] = false;
}
}
}
return primes;
}
var k = 20;
console.log("listPrimes(" + k + ")");
console.log(fmt(listPrimes(k)));
當我試圖把它通過我得到這個錯誤:
[email protected]:~$ node hw2.js
listPrimes(20)
/home/ubuntu/hw2.js:22
console.log(fmt(listPrimes(k)));
^
ReferenceError: fmt is not defined
at Object.<anonymous> (/home/ubuntu/hw2.js:22:13)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
我不知道什麼是錯的,我是一個初學者所以它可能是非常明顯的。
編輯:固定
#!/usr/bin/env node
function listPrimes(max) {
var primes = [];
var sieve = new Array(max);
for(var i = 0; i < max; i++) {
sieve[i] = true;
}
for(var p = 2; p < max; p++) {
if(sieve[p]) {
// p is prime, save it and mark p*2, p*3, etc. as non-prime
primes.push(p);
for(var t = p * 2; t < max; t += p) {
sieve[t] = false;
}
}
}
return primes;
}
var k = 100;
console.log("listPrimes(" + k + "):" + listPrimes(k));
返回:
[email protected]:~$ node hw2.js
listPrimes(100):2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
'fmt'函數沒有在任何地方定義。 –
僅供參考:https://npmjs.org/package/fmt和http://nodetoolbox.com/packages/fmt – 3ventic
謝謝,我認爲解決它,我將如何使素數輸出到文本文件?我認爲這會實現,但我什麼都沒有。 –