我在這裏有代碼來列出3-100中的所有素數。我的主要問題是該程序只打印三個。我認爲出於某種原因,它離開了循環或其他東西。我在for語句中放了一個break,一旦發現該數字不是素數就可以將其打印出來,從而立即離開for循環。但是,它似乎沒有工作。在C++中打印3-100之間的所有素數
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main()
{
bool prime = true;
for (int x = 3; x <= 100; x++)
{
for (int y = 2; y <= (x - 1); y++)
{
if ((x % y) == 0)
prime = false;
break;
}
if (prime == true)
cout<<x<<endl;
}
getche();
return 0;
}
你不需要{}後,如果((X%Y)== 0) {prime = false;打破; }?你也需要在第一次循環開始時設置prime = true。 – esertbas
附註:風格:你可能想縮進嵌套的for循環,可能更容易閱讀自己的代碼,而恰好趕上這種編程錯誤。 – WeirdlyCheezy
只要採取和打印:http://primes.utm.edu/lists/small/10000.txt'的printf(「2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 \ n「);'(JK) – PiotrNycz