C++程式顯示兩個區間之間的素數


素數是一個大於1的整數,素數的因數只有1和它本身。一些最初的素數是2、3、5、7、11、13、17等。

兩個區間之間可能存在許多素數。例如,區間5到20之間的素數是:

5, 7, 11, 13, 17 and 19.

查詢並顯示兩個區間之間素數的程式如下所示。

示例

 線上演示

#include <iostream>
using namespace std;
void PrimeNumbers (int lbound, int ubound) {
   int flag, i;
   while (lbound <= ubound) {
      flag = 0;
      for(i = 2; i <= lbound/2; i++) {
         if(lbound % i == 0) {
            flag = 1;
            break;
         }
      }
      if (flag == 0)
      cout<<lbound<<" ";
      lbound++;
   }
}
int main() {
   int lowerbound = 20, upperbound = 50;
   cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: ";
   PrimeNumbers(lowerbound,upperbound);
   return 0;
}

輸出

Prime numbers between 20 and 50 are: 23 29 31 37 41 43 47

在上面的程式中,函式main()僅包含cout物件和對函式PrimeNumbers()的呼叫,並以上限和下限作為引數。這可以在以下程式碼片段中看到。

cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: ";
PrimeNumbers(lowerbound,upperbound);

在函式PrimeNumbers()中,測試從lbound到ubound的每個數字以檢視它是否是素數。如果它是素數,則顯示它。這是使用while迴圈完成的。

在while迴圈中,flag的初始值為0。如果數字不是素數,則在for迴圈中將flag的值設定為1。在for迴圈結束之後,如果flag仍然為0,則該數字為素數,並將其顯示出來。這可以從以下程式碼片段中觀察到。

while (lbound <= ubound) {
   flag = 0;
   for(i = 2; i <= lbound/2; i++) {
      if(lbound % i == 0) {
         flag = 1;
         break;
      }
   }
   if (flag == 0)
   cout<<lbound<<" ";
   lbound++;
}

更新於: 2020年6月24日

438 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.