bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
class PrimeNumberGenerator {
public:
explicit PrimeNumberGenerator(int start) : current_number(start) {}
int GetNextPrime() {
if (isPrime(current_number) && !is_changed) {
is_changed = true;
return current_number;
}
int current_prime = current_number;
bool prime_is_founded = false;
while (!prime_is_founded) {
current_prime++;
if (isPrime(current_prime)) {
prime_is_founded = true;
}
}
current_number = current_prime;
return current_prime;
}
private:
int current_number;
bool is_changed;
};