示例 1:显示两个区间之间的素数
#include <iostream>
using namespace std;
int main() {
int low, high, i;
bool is_prime = true;
cout << "Enter two numbers (intervals): ";
cin >> low >> high;
cout << "\nPrime numbers between " << low << " and " << high << " are: " << endl;
while (low < high) {
is_prime = true;
// 0 and 1 are not prime numbers
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;
}
输出
Enter two numbers (intervals): 0 20 Prime numbers between 0 and 20 are: 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 << "Enter two numbers (intevals): ";
cin >> low >> high;
//swapping numbers if low is greater than high
if (low > high) {
temp = low;
low = high;
high = temp;
}
cout << "\nPrime numbers between " << low << " and " << high << " are:" << 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;
}
输出
Enter two numbers (intervals): 20 0 Prime numbers between 0 and 20 are: 2, 3, 5, 7, 11, 13, 17, 19,
访问此页面了解如何使用用户定义函数显示两个区间之间的所有素数。