class PrimeNumberGenerator {
public:
explicit PrimeNumberGenerator(int start);
int GetNextPrime();
private:
int start_;
};
bool check_prime(int n) {
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return false;
return true;
}
PrimeNumberGenerator::PrimeNumberGenerator(int start) : start_(start) {}
int PrimeNumberGenerator::GetNextPrime() {
int k = 0;
bool flag = false;
while (!flag) {
flag = check_prime(start_ + k);
k++;
}
int prime = start_;
start_ += k;
return prime + k - 1;
}