Crivo de Eratóstenes Simples em C
Publicado por Perfil removido (última atualização em 14/05/2012)
[ Hits: 10.660 ]
Crivo simples. Valores devem ser ajustados.
Obs[1]: Dependendo do compilador, sistema ou memória disponível, corrigir para não haver overflows.
Obs[2]: O tamanho do crivo pode ser calculado exato e quase exato, dependendo do limite colocado.
Obs[3]: Quem puder testar e fazer "benchmark" com valores elevados e sistemas mínimos, máquinas virtuais etc. eu agradeceria.
#include <stdio.h>
#include <math.h>
typedef unsigned long long llint;
int main (void) {
const llint p = (llint) (pow (2.0, 23.0) -1.0);
const llint q = 1009999; // (llint) (2.0 * ((double) p / log((double) p)));
llint primes[q];
llint i=5, j=0, k=0, l=1, m=0;
for (m=0; m<q; m++) primes[m]=1;
primes[0]=2;
primes[1]=3;
do {
j = 0;
k= (llint) sqrt((double) i);
while ((primes[++j]<k) && (i%primes[j]));
if (primes[j]>k) primes[++l] = i;
i+=((i%3==2)?2:4);
} while (i<p && l<q);
for (m=0; m<l; m++) printf ("%llu ",primes[m]);
putc ('\n',stdout);
return 0;
}
Bhaskara - Cálculo de raízes de equações do segundo grau
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Eu aprendi o segredo das artes! hahaha (4)
A falsa sensação de que entende a tal da palavra! (0)
Como instalo o Clipper/Harbour no Linux Ubuntu (0)









