Lista dei numeri primi 4


Ecco qui di seguito una lista di numeri primi fino a 15.000, scaricabili gratuitamente in formato excel (zippati). Tranquilli, il file non eseguirà alcun aggiornamento, finché non cambierà la matematica percepita alla base del nostro universo :)

Lista dei numeri primi fino a 15.000 in formato Excel

Scarica

DOWNLOAD: lista_numeri_primi.zip

Per tutti coloro che volessero conoscere come produrre numeri primi con il VBA (Visual Basic for Application) di Excel, eccovi il codice per generare un numero a piacere di numeri primi, ed il relativo file XLSM (Excel con macro), in cui troverete il codice pronto a girare con un semplice F5.

Scarica

DOWNLOAD: genera_numeri_primi_macro.zip

' ============== CODICE GENERA PRIMI 235711.org ================
Private Sub genera_primi()
Cells.Select
' svuota il foglio excel
Selection.ClearContents
' imposta il limite entro il quale produrre tutti i numeri primi
Z = 15000
'itera per trovare i primi numeri fino a 15.000
For x = 1 To Z
p = x
switch1 = False
For I = 2 To p - 1
If p Mod I = 0 Then
switch1 = True
End If
Next I
If switch1 = True Then
' non è un numero primo
Else
'scrive il numero primo nella colonna A
Range("a" & x).FormulaR1C1 = x
Range("a" & x).Select
End If
Next
' ordina la colonna così ottenuta producendo la lista dei primi minori di Z
Columns("A:A").Select
Range("A16479").Activate
ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add Key:=Range( _
"A1:A16493"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Foglio1").Sort
.SetRange Range("A1:A16493")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("a1").Select
' ============== CODICE GENERA PRIMI 235711.org ================

End Sub

Codice che genera primi in macro Excel

Il sistema utilizzato è quello del calcolo modulare che introduce il test di primalità basato sul resto (uno dei più semplici ma dei più scomodi in termini di prestazioni computazionali). Per numeri fino a qualche milione, anche VBA continua a dare numeri con velocità e grandi performance.


Lascia un commento

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Current month ye@r day *

4 commenti su “Lista dei numeri primi

  • Salvatore

    Ho notato che da alcuni numeri primi, con le loro stesse cifre, se ne possono formare altri : 743 e 347 ; 971 e 179 e 197 ; 199 e 991 e 919 ; 1103 e 3011 e 1031 ; 137 e 317 e 173 ; ( ecc.ecc. )

  • Fabrizio Nitro Tornaboni

    Bene, quello è l’algoritmo peggiore in termini di costo, perchè il ciclo x di divisioni va da 2 a p-1, dove p è il numero da analizzare. Vorrei consigliarvi di modificarlo in modo che x NON vada da 2 a p-1, ma vada DA 2 ALL’INTERO DELLA RADICE DI P. In basic dovrebbe essere così: for x= 2 to int(sqr(p)).
    Questo è sicuramente MOLTO piu’ veloce, pur rimanendo non il migliore. La dimostrazione matematica dell’algoritmo che vi propongo è data dal crivello di Erastotene!

  • Amenitario

    Ottimo grazie, l’ho utilizzato per il mio progetto di verifica della distribuzione dei primi secondo una mia teoria, che ovviamente, ancora non rivelo. Intanto grazie!

  • anatolij

    1 non è un numero primo ma nella tabella è inserito!
    minimo errore ma fondamentale.
    per il resto bel programma.
    ciao! :)