本程序提示用戶輸入最大值,以此為范圍,從最小質數2開始舉判斷質數,輸出質數表。代碼如下:
1 // 素數表.cpp : 定義控制台應用程序的入口點。 2 // 3 4 #include "stdafx.h" 5 6 7 int main() 8 { 9 int x = 2,y=1,b,line=0; //x最小質數2為枚舉起點,y初值為1,之后遞加1,b范圍內最大質數,line每行輸出的數的數量 10 cout << "請輸入最大值:"; 11 cin >> b; 12 13 while (x <= b) 14 { 15 int z = x - y; //z隨y遞減1 16 int a = x%z; //取余數 17 if (a == 0)//如果x被z整除 18 { 19 if (z == 1)//如果z為1(x是質數) 20 { 21 cout << x << " ";//輸出x 22 x++; 23 y = 1; //y還原 24 line++;//每行輸出的數的數量加1 25 26 } 27 else//如果x為合數 28 x++; 29 y = 1;//y還原 30 31 32 33 } 34 else//如果沒有被整除 35 y++;//y加1,下一次循環中z減1 36 37 38 if (line == 10)//每輸出10個數 39 { 40 cout << endl;//輸出一個回車 41 line = 0;//還原line 42 43 } 44 45 46 } 47 system("pause"); 48 return 0; 49 }
以輸入最大值為100為例,執行結果如下圖:

