Crivo de Eratóstenes

Publicado por Marcondes Almeida 16/08/2006

[ Hits: 8.267 ]

Download primo.c




Uma implementação diferente da que encontrei aqui (no site) do Crivo de Eratóstenes. Este é muito rápido, gera primos até 30.000.000 em 6 segundos e 160.000.000 em 58 segundos.

  



Esconder código-fonte

#include <stdio.h>

main(int argc, char *argv[])
  { 
     if(argc != 2) {
          printf("**** CHAMADA DO PROGRAMA :  ./trab1 [numero]");
          exit(1);
     };
        
    long int i, j, N = atoi(argv[1]);
    
    int *a = malloc(N*sizeof(int));
    if (a == NULL){ 
        printf("erro de alocação!!/n");
        return; 
        }
    
        
    for (i = 2; i < N; i++) a[i] = 1;
    for (i = 2; i < N; i++)
      if (a[i])
        for (j = i; j<= N/i; j++) a[i*j] = 0;
    for (i = 2; i < N; i++){
      if (a[i]){
          printf("%4d\n ", i); 
          }
          }  
  }
   

Scripts recomendados

Verificador de senhas: comparando palavras

Controlando o teclado enquanto mensagens são exibidas no console

Uma pincelada no printf

Cálculo de Determinantes

Raiz quadrada aproximada


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário