2016-01-01 33 views
-5

寫下面的代碼試圖識別所有的素數上升100.它輸出1,2和5.任何人都可以看到任何理由爲什麼它不會繼續前3?列出所有素數高達100

我知道我可以做的一些效率調整(只有賠率數字等),但只是試圖讓核心(矯枉過正)的概念首先下降。我是一個完全的小白,只是試圖通過編程來增強我的直覺,所以我知道這可能不是最優雅的解決方案,但更關心它爲什麼不起作用。

感謝任何幫助..新年快樂!

static void Main(string[] args) 
{ 
    int q = 100; 
    for (int i = 1; i < q; i++) 
    { 
     if ((q % i) == 0) 
     { 
      bool isPrime = true; 
      for (int j = 2; j < i; j++) 
      { 
       if ((i % j) == 0) 
       { 
        isPrime = false; 
       } 
      } 

      if (isPrime == true) 
      { 
       Console.WriteLine(i + " is a prime number... hopefully."); 
      } 
     } 
    } 
    Console.ReadKey() 
} 
+6

設置斷點,遍歷代碼,檢查變量。 – CodeCaster

+2

注意:1,2和5不是前三個素數... – David

+5

什麼是if((q%i)== 0)'在做什麼? – weston

回答

4

q%i對結果進行過濾,以100黃金的因素,這是1,2,5

如果刪除部分,它應該工作的罰款。

+0

謝謝我的朋友,立即解決它。我不是100%確定爲什麼大聲笑,所以我會盯着這幾個小時。 我的意圖是檢查它是否是100的因素,然後繼續檢查這個因素是否爲主要因素。 – Tom