#include "prime_gen.h"
#include <vector>
#include <cstdint>

int a;
bool isItPrime(int val){
    if (val <= 1) {
        return false;
    }
    if (val <= 3) {
        return true;
    }
    if (val % 2 == 0 || val % 3 == 0) {
        return false;
    }
    for (int i = 5; i * i <= val; i = i + 6) {
        if (val % i == 0 || val % (i + 2) == 0) {
            return false;
        }
    }
    return true;
}

PrimeNumberGenerator::PrimeNumberGenerator(int start){
    a = start - 1;
}
int PrimeNumberGenerator::GetNextPrime() {
    a++;
    if (a <= 1)
        a = 2;
    while (!isItPrime(a)) {
        a++;
    }
    return a;
}