#include #include class PrimeNumberGenerator { public: explicit PrimeNumberGenerator(int start): current_number_(start - 1) {} int GetNextPrime() { ++current_number_; for (int i = current_number_; i < std::numeric_limits::max(); ++i) { if (IsPrime(i)) { return current_number_ = i; } } return 0; } private: bool IsPrime(int number) { if ((number == 1) || (number == 0)) { return false; } int bar = static_cast(std::sqrt(number) + 1); for (int check_div = 2; check_div < bar; ++check_div) { if (number % check_div == 0) { return false; } } return true; } int current_number_; };