class PrimeNumberGenerator { public: explicit PrimeNumberGenerator(int start); int GetNextPrime(); private: int start_; }; bool check_prime(int n) { if (n == 1) return false; 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; }