#pragma once
#include <iostream>
#include <cmath>
class PrimeNumberGenerator {
public:
PrimeNumberGenerator(int start): start(start) {
while (!Sieve()) {
this->start = GetNextPrime();
}
prime = true;
};
bool Sieve() {
if (start == 2 or start == 3) {
return true;
}
else if (!(start % 2) or !(start % 3) or 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;
};