#pragma once #include class PrimeNumberGenerator { private: int start; int barion = 200; const int size = 3000000; bool arr[3000000]; public: explicit PrimeNumberGenerator(int start) : start(start < 2 ? 2 : start) { arr[0] = arr[1] = false; for (int i = 0; i < size; arr[i++] = true) {} for (int i = 2; i * i< size; i++) { if (i * i <= size) { for (int j = i * i; j < size; j += i) { arr[j] = false; } } } } int GetNextPrime() { int cs; for (cs = this->start; cs <= this->start + barion; cs++) { if (arr[cs] == true) break; } this->start = cs + 1; return cs; } };