#pragma once
#include <iostream>
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;
};