Иванов Александр
07.10.2021 20:37 (22 д. 11:10)
[5454878]
#pragma once
#include <vector>
#include <cstdint>
class PrimeNumberGenerator {
public:
explicit PrimeNumberGenerator(int start);
int GetNextPrime();
};
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;
}