4

node.js (javascript や実際のプログラミング経験はありません) を独学しようとしていますが、解決しようとしている問題の 1 つで障害にぶつかっています。私の目標は、最初の 100 個の素数を txt ファイルに書き込むことです。以下はこれまでの私のコードです。

var fs = require('fs');
var outfile = "test.txt";
var primality = function () {
    var arr = [];
    for (var n = 2; n <= 542; n++) {
        var primeTrue = true;
        for (var i = 2; i <= Math.sqrt(n); i++) {
            if (n % i === 0) {
                primeTrue = false;
            }
        }
        if (primeTrue) {
            arr.push(n);
        }
    }
    return arr;
}
fs.writeFileSync(outfile, arr);

コードアカデミーの JavaScript ラボを使用してループと条件をテストしていましたが、このコードは機能しているようです。(プログラムを 100 番目の素数で停止させるのではなく、カウンターを 542 で停止するように設定する必要があったため、これもおそらく最善の方法ではありません)。いずれにせよ、私が追加したとき

var outfile = "test.txt"

fs.writeFileSync(outfile, arr);

私が思っていたように、これは100個の素数をtxtファイルに出力しませんでした。私はまだ学習の1階にいるので、あなたが提供できる助けに大いに感謝します.

前もって感謝します。

ケビン

4

2 に答える 2

3

リストを事前に初期化し、2 の倍数の素数性のテストをスキップすると、これはさらにうまく機能します。

var primes = [2];
--nPrimes
for( var n = 3;  nPrimes > 0;  n += 2 )

スタートアップ エンジニアリング コースの宿題 @Coursera の非常によく似たコードを完成させました ;)

于 2013-06-29T21:10:35.540 に答える