使用函数显示两个区间之间的素数的 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++; }
广告