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;
}