Successive prime differences: Difference between revisions
Content deleted Content added
Thundergnat (talk | contribs) →{{header|Raku}}: fix up internal link |
m Put Sieve of Eratosthenes implementation in separate header file |
||
Line 144:
#include <cstdint>
#include <vector>
using integer = uint32_t;
using vector = std::vector<integer>;
▲class sieve_of_eratosthenes {
public:▼
explicit sieve_of_eratosthenes(size_t);▼
bool is_prime(integer n) const {▼
return is_prime_[n];▼
}▼
private:▼
std::vector<bool> is_prime_;▼
};▼
sieve_of_eratosthenes::sieve_of_eratosthenes(size_t max)▼
: is_prime_(max, true) {▼
is_prime_[0] = is_prime_[1] = false;▼
for (integer p = 2; p * p < max; ++p) {▼
if (is_prime_[p]) {▼
for (integer q = p * p; q < max; q +=p)▼
is_prime_[q] = false;▼
}▼
}▼
}▼
void print_vector(const vector& vec) {
Line 240 ⟶ 220:
return 0;
}</lang>
Contents of sieve_of_eratosthenes.h:
<lang cpp>#ifndef SIEVE_OF_ERATOSTHENES_H
#define SIEVE_OF_ERATOSTHENES_H
#include <vector>
class sieve_of_eratosthenes
{
▲public:
▲ explicit sieve_of_eratosthenes(size_t);
▲private:
▲ std::vector<bool> is_prime_;
▲};
inline bool sieve_of_eratosthenes::is_prime(size_t n) const
{
▲}
▲inline sieve_of_eratosthenes::sieve_of_eratosthenes(size_t max)
{
▲ is_prime_[0] = is_prime_[1] = false;
{
▲ is_prime_[q] = false;
▲ }
▲ }
}
#endif</lang>
{{out}}
|