In quanti modi riusciamo a scrivere il crivello di Eratostene?

Micky Del Favero micky@mesina.net
Mar 26 Ott 2010 21:37:38 CEST


Massimo Masson <max@studiomasson.it> writes:

> Vale tutto, basta che sia una cosa che può girare su GNU/Linux! (C,
> Python, Perl, PHP, Bash, Lua, Haskell, assembly, SQL, Gambas, Mono,
> Javascript, e QUALSIASI ALTRA COSA conosciate o vi venga in mente)
>
> Allora, chi conosce il linguaggio più strano o ha l'idea più
> strampalata? 

Augurandomi il mio post possa spronare i timidi a partecipare inizio io
con un algoritmo stupido scritto in bc (man bc per i dettagli):

micky@minnie:~/DaFare/BLUG/Crivello$ cat crivello.bc
max = 100
np = -1

for( i = 2; i <= max; i++ ){
  setaccio[i] = i
}

limit = sqrt( setaccio[max] )

for( j = 2; j <= limit; j++){
  if( setaccio[j] == np ){
    continue
  }
  for( i = j + 1; i <= max; i++ ){
    if( setaccio[i] == np ){
      continue
    }
    if( ( setaccio[i] % setaccio[j] ) == 0 ){
      setaccio[i] = np
    }
  }
  setaccio[j]
}

for( i = j + 1; i <= max; i++ ){
  if( setaccio[i] != np ){
     setaccio[i]
    }
}

halt
micky@minnie:~/DaFare/BLUG/Crivello$ bc -q crivello.bc
2
3
5
7
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
micky@minnie:~/DaFare/BLUG/Crivello$ 

Aspetto qualcuno posti una versione migliore della mia ;-)

Ciao, Micky
-- 
UNIX is basically a simple operating system, but you have to
be a genius to understand the simplicity.  -- Dennis Ritchie


Maggiori informazioni sulla lista blug