class PrimeNumberGenerator {
 private:
    int start;
 public:
    explicit PrimeNumberGenerator(int start);
    int GetNextPrime();
};
bool isPrime(int n) {
    if (n < 2 || n % 2 == 0) return false;
    if (n == 2) return true;
    for (int i = 3; i * i <= n; i += 2)
        if (n % i == 0) return false;
    return true;
}
int easy(int N) {
    for (int i = N + 1; ; i++)
        if (isPrime(i)) return i;
}
PrimeNumberGenerator::PrimeNumberGenerator(int start) : start(start) {
}
int PrimeNumberGenerator::GetNextPrime() {
    int tmp;
    if (isPrime(start)) {
        tmp = start;
        start = easy(start);
        return tmp;
    }
    start = easy(start);
    return start++;
}