Factors of a Mersenne number: Difference between revisions
m
Put Sieve of Eratosthenes implementation in separate header file
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
m (Put Sieve of Eratosthenes implementation in separate header file) |
||
Line 546:
#include <cstdint>
#include <vector>
typedef uint64_t integer;
Line 573 ⟶ 574:
return square;
}
▲class sieve_of_eratosthenes
{▼
public:▼
explicit 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;▼
}▼
bool is_prime(integer n) const▼
return is_prime_[n];▼
private:▼
std::vector<bool> is_prime_;▼
};▼
const integer limit = 100000U;
Line 624 ⟶ 602:
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:
▲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_(max, true)
{
▲ {
▲ {
}
#endif</lang>
{{out}}
|