查找两个数之间的所有的质数的 C++程序
这是一个在 C++ 编程中打印由用户输入的两个数字之间的所有质数的示例。使用嵌套的 for
循环和 if...else
语句解决了这个问题。
要理解此示例,您应该具备以下 C++ 编程 主题的知识:
示例 #1:查找两个数字之间的质数
#include <iostream>
using namespace std;
int main() {
int low, high, i;
bool isPrime = true;
cout << "Enter two numbers (intervals): ";
cin >> low >> high;
cout << "\nPrime numbers between " << low << " and " << high << " are: " << endl;
while (low < high) {
isPrime = true;
if (low == 0 || low == 1) {
isPrime = false;
}
else {
for (i = 2; i <= low / 2; ++i) {
if (low % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime)
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 isPrime;
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) {
isPrime = true;
if (low == 0 || low == 1) {
isPrime = false;
}
else {
for (i = 2; i <= low / 2; ++i) {
if (low % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime)
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,
访问此页面以了解如何使用用户定义函数查找两个数字之间的所有质数。