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


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

兩個區間之間可能存在許多素數。例如,區間 5 和 20 之間的素數是 5、7、11、13、17 和 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日

2K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告