#pragma once #include class PrimeNumberGenerator { private: int start; public: explicit PrimeNumberGenerator(int start): start(start < 2 ? 2 : start) {} int GetNextPrime() { int cs; std::vectorprime(this->start + 20 + 1, true); prime[0] = prime[1] = false; for (int i = 2; i <= this->start + 20; i++) if (prime[i]) { if (i * i <= this->start + 20) { for (int j = i * 1ll * i; j <= this->start + 20; j += i) { prime[j] = false; } } } for (cs = this->start; cs <= this->start + 20; cs++) { if (prime[cs] == true) break; } this->start = cs+1; return cs; } };