2016-06-16 3 views
-3

私はオイラーの問題に取り組んでおり、数をチェックして素数かどうかを調べる関数を作成しようとしています。javascriptでは、整数の代わりに変数にモジュラス演算子(%)を使用できますか?

if (a)%(b)==0{ 

私の構文が間違っているのですか、整数ではなく変数に%を使用することはできませんか?

var x = Math.sqrt(600851475143); 
var y = Math.round(x); 
y++; 
console.log(y); 

//find all of the prime numbers up to the square root number. Put them in an array. 
//Check each ascending number against the prime numbers in the array to see if %=0 

var primes = [2,3]; 
var a =(3); 

while (a<y){ 
    a++; 
    isPrime(a) 
} 
function isPrime(arr){ 
for (var i = 0; i < arr.length; i++){ 
    var b = primes[i]; 
    //next line is a problem 
    if (a)%(b)==0{ 
     break 
    }else{ 
     primes.push(a); 
     } 
    } 
} 
+2

になります。実際にa

後でifループ

if (a)%(b)==0{ // Here it is assuming the the condition statement ends with)

にここにあります構文が間違っています。それは 'if(a%b == 0){' ... '}'です。これはモジュラス演算子とは関係ありませんが、 'if'ステートメントを使用します。 – Xufox

+1

あなたの括弧で簡単なエラーを見る能力が不足している場合は、オイラー問題を試みるのに十分なスキルを持つことができません。戻ってより簡単なことに取り組む。 –

+0

@JK新しい言語の構文に問題があるということは、数学者の理解が不足していることを意味するものではありません。代わりに、OPは構文エラーを指摘するより良いツール(devtools、IDE、linter)を試すべきです。 – Bergi

答えて

1

いつでも変数に操作を使用できます。スクリプトが実行されると、変数は変数に関連付けられた実際の値に置き換えられます。

if (a)%(b)==0 {} 

それは次のようになります:

var a = 3, 
    b = 5; 
if(a%b == 0) {} 

あなたは自分の文で間違った構文を使用

if(3%5 == 0) {} 

に等しいJavaScriptで

if(a%b == 0) {} 

、次のものが必要if文をsquiでラップするgglyかっこ、変数ではない。 if文が正しく書かれていないため、括弧の外側にランダムモジュラス、等号やその他の記号がないため、コードで構文エラーが発生します。

0

はい、あなたはそれを

を使用することができます。しかし問題は、はい、それは

if ((a)%(b)==0){ // Note braces pointed by ^^ 
^  ^  
     break 
    }else{ 
     primes.push(a); 
     } 
    } 
} 
+0

それはうまくいった、ありがとう!今すぐ次のエラーをデバッグする... – jasonp49

関連する問題