29 lines
376 B
C++
29 lines
376 B
C++
#include "sieve.h"
|
|
|
|
namespace sieve {
|
|
|
|
using namespace std;
|
|
|
|
primes_t primes(size_t n)
|
|
{
|
|
primes_t result;
|
|
|
|
vector<char> sieve(n, false);
|
|
|
|
for (size_t p = 2; p < n; ++p) {
|
|
|
|
if (sieve[p])
|
|
continue;
|
|
|
|
result.push_back(p);
|
|
|
|
for (size_t i = p*p; i < n; i += p) {
|
|
|
|
sieve[i] = true;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
}
|