Cualquier duda no dudes en contactar.
/**
* Author: Håkan Terelius
* Date: 2009-08-26
* License: CC0
* Source: http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
* Description: Prime sieve for generating all primes up to a certain limit. isprime$[i]$ is true iff $i$ is a prime.
* Status: tested on jutge Factorization and GCPC15 F
* Time: lim=100'000'000 $\approx$ 0.8 s. Runs 30\% faster if only odd indices are stored.
*/
#pragma once
const int MAX_PR = 5000000;
bitset<MAX_PR> isprime;
vi eratosthenes_sieve(int lim) {
isprime.set(); isprime[0] = isprime[1] = 0;
for (int i = 4; i < lim; i += 2) isprime[i] = 0;
for (int i = 3; i*i < lim; i += 2) if (isprime[i])
for (int j = i*i; j < lim; j += i*2) isprime[j] = 0;
vi pr;
FOR(i,2,lim) if (isprime[i]) pr.push_back(i);
return pr;
}
Sigue en contacto con Isaac Lozano Osorio!