区间内的真素数C++
时间: 2025-01-04 14:19:14 浏览: 108
### 使用 C++ 计算指定区间内的真素数
为了计算给定区间 `[num1, num2]` 内的真素数,在此提供一种基于埃拉托斯特尼筛法优化后的算法实现方法。该方法能够高效地找出所有符合条件的素数。
#### 定义函数来判断单个数字是否为素数
首先创建一个辅助函数 `isPrime(int number)` 来检测特定数值是不是素数:
```cpp
bool isPrime(int number) {
if (number <= 1) return false;
for (int i = 2; i * i <= number; ++i) {
if (number % i == 0) return false;
}
return true;
}
```
上述代码通过遍历从 2 到 sqrt(number),检查是否存在能被 number 整除的情况,以此决定 number 是否为素数[^1]。
#### 主程序逻辑结构设计
接下来编写主函数部分,用于接收用户输入并调用之前定义好的 `isPrime()` 函数来进行筛选操作:
```cpp
#include <iostream>
using namespace std;
// ...此处省略前面提到过的isPrime()...
void findTruePrimesInRange(int start, int end){
cout << "Between " << start << " and " << end << ", the primes are:" << endl;
for (int currentNumber = max(2,start); currentNumber <= end ; ++currentNumber ) {
if(isPrime(currentNumber)){
cout<<currentNumber<<" ";
}
}
cout<<"\n";
}
int main(){
int lowerBound, upperBound;
do{
cout << "\nEnter two numbers as interval bounds: ";
cin >> lowerBound >> upperBound ;
if(lowerBound>upperBound || lowerBound<0){
cerr <<"Invalid input! Please enter valid positive integers where first one should be less than second."<<endl;
}else{
findTruePrimesInRange(lowerBound , upperBound );
}
}while(true);
return 0;
}
```
这段代码实现了交互式的命令行界面,允许用户连续多次查询不同区间的素数列表直到手动停止程序运行为止。每次迭代都会提示用户输入新的上下限值,并打印出对应范围内所有的素数[^2]。
阅读全文
相关推荐
















