簡體   English   中英

素數不能用Javascript打印

[英]Prime numbers not printing in Javascript

我有以下代碼來查找從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行。 我看不到這里有什么問題。

編寫函數primes是為了期望有一個數組,但是您正在向其傳遞一個整數。

您是說fmt(primes(primesarray(k)))嗎?

(這至少會打印出一個數字列表,但恐怕其中許多不是質數!)

你需要你陣列;)

var arr = primesarray(k)

像這樣

var k = 1000;
var arr = primesarray(k)
console.log(primes(arr));
console.log(fmt(primes(arr)));

DEMO

一些實際的解決方案: http : //www.codecademy.com/forum_questions/5033d10f77955e0002004142

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM