使用函式顯示兩個區間之間的素數的 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++; }
廣告