Crivo de Eratóstenes Simples em C
Publicado por Perfil removido (última atualização em 14/05/2012)
[ Hits: 10.529 ]
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;
}
Converte Farenheit para Celsius
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (6)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









