Unprimeable numbers: Difference between revisions

m
C++ - renamed class
m (C++ - renamed class)
Line 217:
<lang cpp>#include <iostream>
#include <cstdint>
#include "sieve_of_eratosthenesprime_sieve.hhpp"
 
typedef uint32_t integer;
Line 240:
 
// returns true if n unprimeable
bool unprimeable(const sieve_of_eratosthenesprime_sieve& sieve, integer n) {
if (sieve.is_prime(n))
return false;
Line 256:
int main() {
const integer limit = 10000000;
sieve_of_eratosthenesprime_sieve sieve(limit);
 
// print numbers with commas
Line 287:
}</lang>
 
Contents of sieve_of_eratosthenesprime_sieve.hhpp:
<lang cpp>#ifndef SIEVE_OF_ERATOSTHENES_HPRIME_SIEVE_HPP
#define SIEVE_OF_ERATOSTHENES_HPRIME_SIEVE_HPP
 
#include <algorithm>
Line 298:
* See https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes.
*/
class sieve_of_eratosthenesprime_sieve {
public:
explicit sieve_of_eratosthenesprime_sieve(size_t);
bool is_prime(size_t) const;
private:
Line 311:
* @param limit the maximum integer that can be tested for primality
*/
inline sieve_of_eratosthenesprime_sieve::sieve_of_eratosthenesprime_sieve(size_t limit) {
limit = std::max(size_t(3), limit);
is_prime_.resize(limit/2, true);
Line 331:
* @return true if the integer is prime
*/
inline bool sieve_of_eratosthenesprime_sieve::is_prime(size_t n) const {
if (n == 2)
return true;
1,777

edits