Crivo de Eratóstenes Simples em C
Publicado por Perfil removido (última atualização em 14/05/2012)
[ Hits: 10.525 ]
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;
}
Parte 2 - Sessão de estudo sobre VETORES
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
IA chega ao desktop e impulsiona produtividade no mundo Linux
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?
copiar library para diretorio /usr/share/..... su com Falha na a... (1)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (3)
Instalação dualboot Windows 11 e Debian 13 (29)









