37 #ifndef GTEST_SAMPLES_PRIME_TABLES_H_ 38 #define GTEST_SAMPLES_PRIME_TABLES_H_ 49 virtual bool IsPrime(
int n)
const = 0;
62 if (n <= 1) {
return false; }
64 for (
int i = 2; i * i <= n; i++)
67 if ((n % i) == 0) {
return false; }
75 for (
int n = p + 1; n > 0; n++)
91 : is_prime_size_(max + 1), is_prime_(new bool[max + 1])
93 CalculatePrimesUpTo(max);
99 return 0 <= n && n < is_prime_size_ && is_prime_[n];
104 for (
int n = p + 1; n < is_prime_size_; n++)
106 if (is_prime_[n]) {
return n; }
115 ::std::fill(is_prime_, is_prime_ + is_prime_size_,
true);
116 is_prime_[0] = is_prime_[1] =
false;
118 for (
int i = 2; i <= max; i++)
120 if (!is_prime_[i]) {
continue; }
123 for (
int j = 2 * i; j <= max; j += i)
125 is_prime_[j] =
false;
130 const int is_prime_size_;
131 bool *
const is_prime_;
137 #endif // GTEST_SAMPLES_PRIME_TABLES_H_