-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« Verificare l'esistenza di indirizzi e-mail | Home | IPW Day 1 - Pisa è piccina »

Primi con Perl
16.07.04

Navigando un po' per la rete come di solito faccio la sera per rilassarmi, l'altro giorno mi sono imbattuto in un progetto che ha come scopo la ricerca del numero primo piu' grande mai scoperto. Il progetto conteneva software e numerose informazioni su come fare per scrivere il proprio nome nella storia della matematica! :)

Comunque, incuriosito, ho rispolverato il libro di matematica alla ricerca del significato dei numeri primi e del modo in cui essi si calcolano. Un numero primo e' un numero divisibile soltanto per 1 e per se stesso; ma come si calcola?

Fin'ora nonostante le numerose ricerche e la nostra inarrestabile evoluzione, l'unico metodo sicuro e funzionante e' quello inventato da Eratostene gia' dal 240 ac, il cosiddetto Crivello di Eratostene.

Il metodo consiste nel partire da 2 e togliere via via tutti i suoi multipli, poi passare al numero successivo che e' 3 e fare la stessa cosa, quindi 5 (visto che 4 lo abbiamo scartato) poi 7 ( 6 scartato) poi 11 e cosi' via all'infinito.

Affascinato dal metodo mi sono subito chiesto in che modo poterlo implementare in Perl, e dopo numerose auto-ottimizzazioni, Vi rimetto la mia soluzione:

sub{ $_[0] % $_ ? next : return 1 for @p}->($_) || print $p[$n++]=$_,"\n" for 2..1000

Inviato da LucaS il 16.07.04 01:59
Ti è piaciuto questo articolo? Iscriviti al feed!

D:
Sull'autore...
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google