c++質數判定及輸出質數表


      本程序提示用戶輸入最大值,以此為范圍,從最小質數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為例,執行結果如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM