#pragma once #include class PrimeNumberGenerator { public: explicit PrimeNumberGenerator(int start) : start(start) { while (!Sieve()) { this->start = GetNextPrime(); } prime = true; } bool Sieve() { if (start == 2 || start == 3) { return true; } else if (!(start % 2) || !(start % 3) || start == 1) { return false; } for (int div = 5; div <= sqrt(start); div += 2) { if (!(start % div)) { return false; } } return true; } int GetNextPrime() { if (prime) { prime = false; return start; } do { ++start; } while (!Sieve()); return start; } int start; bool prime; };