跳到主要内容

C++ 编写显示两个区间内的质数的程序

为了理解这个示例,你应该具备以下 C++ 编程 主题的知识:

示例 1:显示两个区间之间的素数

#include <iostream>
using namespace std;

int main() {

int low, high, i;
bool is_prime = true;

cout << "输入两个数字(区间):";
cin >> low >> high;

cout << "\n" << low << " 和 " << high << " 之间的素数有:" << endl;

while (low < high) {
is_prime = true;

// 0 和 1 不是素数
if (low == 0 || low == 1) {
is_prime = false;
}

for (i = 2; i <= low/2; ++i) {
if (low % i == 0) {
is_prime = false;
break;
}
}

if (is_prime)
cout << low << ", ";

++low;
}

return 0;
}

输出

输入两个数字(区间):0
20
020 之间的素数有:
2, 3, 5, 7, 11, 13, 17, 19,

在这个程序中,while 循环迭代 (high - low - 1) 次。

在每次迭代中,检查 low 是否为素数,并将 low 的值增加 1,直到 low 等于 high

访问此页面了解更多关于如何检查一个数字是否为素数的信息。

如果用户首先输入较大的数字,这个程序将无法按预期工作。如果用户首先输入较大的数字,你可以通过交换数字来解决这个问题。

示例 2:当首先输入较大数字时显示素数

#include <iostream>
using namespace std;

int main() {

int low, high, temp, i;
bool is_prime;

cout << "输入两个数字(区间):";
cin >> low >> high;

// 如果 low 大于 high,交换数字
if (low > high) {
temp = low;
low = high;
high = temp;
}

cout << "\n" << low << " 和 " << high << " 之间的素数有:" << endl;

while (low < high) {
is_prime = true;

if (low == 0 || low == 1) {
is_prime = false;
}

for (i = 2; i <= low / 2; ++i) {
if (low % i == 0) {
is_prime = false;
break;
}
}

if (is_prime)
cout << low << ", ";

++low;
}

return 0;
}

输出

输入两个数字(区间):20
0
020 之间的素数有:
2, 3, 5, 7, 11, 13, 17, 19,

访问此页面了解如何使用用户自定义函数显示两个区间之间的所有素数