C++题目40:定义素数生成类 定义一个素数生成器类PrimeGenerator,可以求解任意两个整数之间的所有素数。 其成员变量包括求解区间起始值start和求解区间结束值end,其成员函数包括设置求解区间函数setPrimeGenerator,求解素数序列函数getPrimeSeq,其他成员变量或成员函数可根据情况自行确定。在主函数中输入两个正整数(提示:不一定第一个数小于第二个数),将求解区间设置给PrimeGenerator类对象,并调用getPrimeSeq方法输出对应的素数序列。 【输入形式】 两个正整数。 【输出形式】 按照从小到大的顺序输出这两个正整数之间的素数。 【样例输入】 10 20 【样例输出】 11 13 17 19
时间: 2024-03-23 10:40:48 浏览: 48
好的,我来为您展示一下完整的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class PrimeGenerator {
private:
int start, end;
public:
void setPrimeGenerator(int s, int e) {
start = s;
end = e;
}
void getPrimeSeq() {
for (int i = start; i <= end; i++) {
bool isPrime = true;
for (int j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime && i != 1) {
cout << i << " ";
}
}
}
};
int main() {
int s, e;
cin >> s >> e;
PrimeGenerator pg;
pg.setPrimeGenerator(s, e);
pg.getPrimeSeq();
return 0;
}
```
代码中,我们定义了PrimeGenerator类,并分别定义了起始值start和结束值end的私有成员变量。通过setPrimeGenerator函数,我们可以设置这两个值。在getPrimeSeq函数中,我们使用了两个for循环,一个从start到end遍历每个数,一个从2到该数的平方根遍历,判断是否能被整除。如果不能被整除,则输出该数,即为素数。
在主函数中,我们先输入两个正整数s和e,然后定义一个PrimeGenerator类对象pg,并通过setPrimeGenerator函数设置求解区间。最后,调用getPrimeSeq函数输出对应的素数序列。
注意,我们需要判断素数是否等于1,因为1不是素数。
希望能够帮到您!