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.