In quanti modi riusciamo a scrivere il crivello di Eratostene?

Dino Del Favero dino@mesina.net
Mar 26 Ott 2010 23:54:18 CEST


On Tue, Oct 26, 2010 at 09:37:38PM +0200, Micky Del Favero wrote:
> con un algoritmo stupido scritto in bc (man bc per i dettagli):

Io l'ho scritto in C senza b :-)

dino@vanessa:~/BLUG>cat ./crivello.c 
#include <stdio.h>

main (int argc, char **argv)
{
  if (argc == 1)
    printf("Uso: %s [limite_superiore]\n", argv[0]);
  else {
    int limite = atoi(argv[1]);
    int setaccio[limite], i, j, k;
    
    for(i=0; i<limite; i++) 
      setaccio[i] = 1;
    
    for(i=2; (i*i)<=limite; ) 
      {
        for(j=2; (k=(j*i))<=limite; j++)
          setaccio[k] = 0;
        for( ; !setaccio[++i] ; );
      }
    for(i=1; i<=limite; i++)
      if (setaccio[i])
        printf("%d\n", i);
  }
}
dino@vanessa:~/BLUG>./crivello 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
dino@vanessa:~/BLUG>

Sicuramente altri parteciperanno ora che si � rotto il ghiaccio!

Saluti
Dino

-- 
   We cannot direct the wind, but we can adjust the sails.
Non possiamo dirigere il vento, ma possiamo regolare le vele.


Maggiori informazioni sulla lista blug