maurogsc.eu
|
![]() |
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