2016-06-07 58 views
2

我正在編寫一個程序,它會查找並輸出1-100的所有素數,而且我能夠構建程序,但是沒有輸出實際的素數。尋找素數但沒有輸出

這裏是我的代碼:

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

int main() 
{ 
    for (int i = 1; i <= 100; i++) 
{ 
    for (int j = i-1; j >= 2; j--) 
    { 
     if (i == 1) 
      break; 
     else if (j == 1) 
      cout << i; 
     else if (i % j == 0) 
      break; 
    } 
} 
return 0; 
} 

任何幫助,將不勝感激!

回答

3

爲您突擊測驗:

給出下面的循環條件:

for (int j = i-1; j >= 2; j--) 

我特別是指到的需要的用於循環迭代的「j >= 2」的一部分;所以你的流行測驗問題如下:

你認爲以下if聲明將永遠評估爲true

 if (j == 1) 

如果你認爲j都不可能達到的值爲1,當循環條件爲j >= 2,你能解釋一下這是如何會發生?

對我來說,它似乎不可能發生,是嗎?這就是爲什麼你的代碼不會生成任何輸出。

+0

這是有道理的,我改變(j == 1)爲(j == 2),它工作得很好。謝謝! – postfan

1

你已經改變了j==1j==2之後,還需要添加另一個if來判斷是否爲數字會2劃分,我認爲這將輸出正確的素數。