2016-06-24 5 views
0

私は、値が素数であるかどうかを決定し、結果を提供するメッセージを表示する関数を記述しようとしています。残念ながら、それは動作しません - エラーメッセージは表示されず、私はなぜ論理的な理由を見ることができません。 (情報のために、私は独立してテストした関数numbers()を呼び出し、それは機能します - それは単一の正の整数を提供します)。私はjavascriptであまり経験はありませんが、オンラインで学ぶことから以下を開発しました。正しい方向のポインタは非常に高く評価されます。素数を決定する

function validate() { 
var message = "This number is "; 
var number; 
var value = numbers(); 
var indicator = true; 

for (int i=2; i <= value/2; i++) { 
    number = value % i; 
    if (number==0) { 
     indicator = false; 
     //or indicator = number % 2 != 0; 
    break; 
    } 
} 

if (indicator) { 
message += "a prime number."; 
} 
else { 
message += "not a prime number."; 
} 

document.getElementById('text').innerHTML = message; 
} 
+1

forループでvarintを置き換えますかコードレビューをお探しの場合http://codereview.stackexchange.com/ – j08691

+0

申し訳ありません!それは動作しないと言うことを意味する!エラーメッセージは表示されません。今更新する予定です。 – Pineapple

+1

'int i = 2;'はJSでは動作しません。そして、私はエラーメッセージ "_ SyntaxError:missing; for-loopイニシャライザ」を参照してください。 – Xufox

答えて

0
  1. 素数であるだけでも数は2で、これだけ
  2. のルートに繰り返すことによって、もう少しを最小限にオッズを考慮して反復を最小化2
  3. で割り切れる他のすべてを破棄

    function isPrime(number) { 
        if (number === 2) return true; 
        if (number % 2 === 0) return false; 
        var flag = true; 
        var i, length = Math.ceil(Math.sqrt(number)); 
    
        for (i = 3; i <= length; i += 2) { 
         if (number % i === 0) { 
          flag = false; 
          break; 
         } 
        } 
        return flag; 
    } 
    
    :数与え

だから、あなたが何ができるかを、以下のようなメソッドを記述しています

0

あなたの質問は何ですか?

for (var i=2; i <= value/2; i++) {

関連する問題