Il crivello di Eratostene è un antico algoritmo per calcolare velocemente tabelle di numeri primi fino ad un certo numero n prefissato. È a tutt’oggi uno dei metodi più efficenti per farlo, dato che utilizza solo l’operazione di somma.
La cosa interessnate è che qualcuno ho postato su wikipedia l’algoritmo implementato in bash..
#!/bin/bash
# sieve.sh
# Crivello di Eratostene
# di Stephane Chazelas
# Si deve invocare con un argomento da linea di comando.
LIMITE_SUPERIORE=$1 # Da linea di comando.
let META=LIMITE_SUPERIORE/2 # Metàdel numero massimo.
Primi=( ” $(seq $LIMITE_SUPERIORE) )
i=1
until (( ( i += 1 ) > META )) # È sufficiente verificare solo la metàdei numeri.
do
if [[ -n $Primi[i] ]]
then
t=$i
until (( ( t += i ) > LIMITE_SUPERIORE ))
do
Primi[t]=
done
fi
done
echo ${Primi[*]}
exit 0
Che FIGATA!!!