[题目]定义一个类prime,用于求在一个指定的范围内素数的个数。例如:在[3,50]范围内的素数有14个[编程要求] (1)私有数据成员。 int low:存放给定整数范围的下限 int up:存放给定整数范围的上限 int count:存放满足条件的整数的个数(2)公有成员函数 prime(int n1,intn2)构造函数,用参数n1,n2初始化下限1ow和上限up,count的初值为0; void process():在[low,up]范围中找出素数的个数,并把值赋给count; void print():输出素数的个数. (3)在主函数中定义prime类的对象p,给定的范围为[3,50], 通过对象p调用成员函数实现计算及输出调试。本题要求的输出结果为:[3,50]范围内有14个素数。
时间: 2024-03-18 11:38:36 浏览: 160
下面是实现题目要求的 C++ 代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class prime {
private:
int low;
int up;
int count;
public:
prime(int n1, int n2): low(n1), up(n2), count(0) {}
void process() {
int num, i;
bool is_prime;
for (num = low; num <= up; num++) {
if (num == 2 || num == 3) {
is_prime = true;
} else if (num < 2 || num % 2 == 0) {
is_prime = false;
} else {
is_prime = true;
for (i = 3; i <= sqrt(num); i += 2) {
if (num % i == 0) {
is_prime = false;
break;
}
}
}
if (is_prime) {
count++;
}
}
}
void print() {
cout << "[" << low << ", " << up << "]范围内有" << count << "个素数。" << endl;
}
};
int main() {
prime p(3, 50);
p.process();
p.print();
return 0;
}
```
输出结果为:
```
[3, 50]范围内有14个素数。
```
阅读全文