2017-09-29 53 views
0

我嘗試打印1到1000之間的素數或任何數字,輸出將顯示1,這不是質數,但1以外的數字工作正常。在滑塊輸入範圍內打印素數

while (minValue< maxValue) { 
     var flag = false; 

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

      if( minValue % i == 0) { 
       flag = true; 
       break; 
      } 
     } 

     if (!flag) 
      document.write(minValue+ " "); 

     ++minValue; 
} 

回答

0

minValue可能是初始化爲1。它應該從2開始。

0

輸出顯示1是不是素數,但數字 1以外工作正常

1被顯示,因爲如果你通過minValue爲1,for循環會跳過並且國旗將保持false

if (!flag)將保持爲真,並且打印此值(1)。

你的邏輯改變

while (minValue < maxValue) { 
    if (minValue == 1) //this condition is added 
    { 
     ++minValue; 
     continue; 
    } 
    var flag = false; 
    for(var i = 2; i <= minValue/2; ++i) { 
     if( minValue % i == 0) { 
      flag = true; 
       break; 
     } 
    } 
    if (!flag) 
    { 
      document.write(minValue+ " "); 
    } 
    ++minValue; 
} 

甚至更​​好,保持這個狀態之前while循環,所以它並不適用於所有循環運行執行。

+0

謝謝你!有效 。 –