本程序中最新使用的知識點:
1、常量整數 const int maxnum。
2、math.h 標準庫。
3、std::vector 和 std::vector::iterator 類型。
程序如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | /* 尋找所有的質數,並將尋找到的質數放入 vector 中進行窮舉。 * By Ceeji */ const int maxnum = 10000; #include <iostream> #include <vector> #include <math.h> using namespace std; typedef vector<int> intarr; int main() { intarr p = intarr(); bool iszs; int max; for (int i = 1; i != maxnum; ++i) // 從 1 開始尋找質數。 { if (i == 1) { iszs = false; } else { if (i == 2) { iszs = true; } else { max = (int)floor(sqrt((double)i)); iszs = true; for (int j = 2; j != max + 1; ++j) { if (i % j == 0) { // 不是質數。 iszs = false; break; } } } if (iszs) { p.push_back (i); } } } intarr::iterator iter = p.begin (); // 輸出 while (iter != p.end ()) { cout << *(iter++) << endl; } return 0; } |
您也許喜歡:

代碼顯示得有問題呢。
沒問題啊
噗,現在好了……昨天看的時候,全部擠在一行。