Crivo de Eratóstenes Simples em C
Publicado por Perfil removido (última atualização em 14/05/2012)
[ Hits: 10.562 ]
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;
}
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (1)
Podem me chamar de 1mbecil :) (2)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)
Como ler fonte de um projeto? [RESOLVIDO] (5)
Perfil criado no samba ad dc não loga no Windows 10 e 11 [RESOLVIDO] (14)









