maurogsc.eu
mauro gamberini


home ==> Excel: come fare per ==> Numeri primi: funzione che verifica se un numero è primo

Numeri primi: funzione che verifica se un numero è primo - VBA

NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.

1 - Codice per una UDF(User Defined Function) che restituisce Vero o Falso se il numero passato come argomento è o meno un numero primo. Il codice va copia/incollato in un modulo standard.

Public Function fPrimo(ByVal v As Variant) As Boolean
        
    Dim lng As Variant
     
    fPrimo = True
     For lng = 2 To (v ^ 0.5)
         fPrimo = True
         If (v Mod lng) = 0 Then
             fPrimo = False
             Exit For
         End If
    Next
 
End Function

Oppure(più lenta):

Public Function fPrimo(ByVal v As Variant) As Boolean
        
    Dim lng As Variant
     
    fPrimo = True
     For lng = 2 To (v / 2)
         fPrimo = True
         If (v Mod lng) = 0 Then
             fPrimo = False
             Exit For
         End If
    Next
 
End Function

2 - Come utilizzarlo.

   a - Da codice: 

Public Sub m()
     MsgBox fPrimo(53)
 End Sub   

   b - Da una cella: 

B1: =fPrimo(A1)

3 - Limitazioni

    a - Per il Visual Basic è limitato dai numeri utilizzabili dai tipi di variabile

    b - Per Excel lato celle alle specifiche e limiti di calcolo di excel 

4 - Per maggiori informazioni sul crivello di Eratostene su cui si basa l'algoritmo della UDF: http://it.wikipedia.org/wiki/Crivello_di_Eratostene

Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads


Ultimo aggiornamento di questa pagina: 23/03/2011 - mauro gamberini