2017-02-24 16 views
-7

打印首要高達號100在javascript

<!DOCTYPE HTML> 
 
<html> 
 
<head> 
 
    <script> 
 
    var i, j, k = 1; 
 
    for (i = 3; i < 100; i++) { 
 
     for (j = 2; j < i; j++) { 
 
     if (i % j == 0) { 
 
      k = 0; 
 
      break 
 
     } 
 
     } 
 
    } 
 
    if (k == 1) { 
 
     alert(i); 
 
    } 
 
    </script> 
 
</head> 
 
<body> 
 
</body> 
 
</html>

我想在提前2至100.However的js代碼沒有產生預期的result.Please help.Thanks打印首要號。

+0

究竟是什麼downvote原因裏面? – Hitesh

+0

http://stackoverflow.com/help/privileges/vote-down –

+0

@KevinB我不是說那個 – Hitesh

回答

0

首先你只需要檢查直到j <= (i/2)在for循環中。
也是你if(k==1)需要被外for循環

var i, j; 
 
    for (i = 3; i < 100; i++) { 
 
     var k = 1; 
 
     for (j = 2; j <= i/2; j++) { 
 
      if (i % j == 0) { 
 
       prime = false; 
 
       k = 0; 
 
       break; 
 
      } 
 
     } 
 
     if (k == 1) { 
 
      console.log(i); 
 
     } 
 
    }

+0

'document.write'是邪惡的。請不要建議他人使用它。它的用例非常有限。使用'console.log()'進行測試。 –

+0

@ScottMarcus我只是想在屏幕上打印結果,所以在運行代碼時很容易看到輸出 – Masoud

+0

'console.log(...)'比'document.write()'簡單嗎?我不這麼認爲。另外,由於SO是關於告知他人的,爲了簡單起見,在答案中使用不好的做法實際上並沒有對任何人有利。 –