Hay un error en el codigo, despues lo corrijo.
Bueno, el error para quien quiera saberlo es que comprobaba mal la multiplicidad de 5...
Me he quedado hoy pensando... y hay una forma realmente sencilla de obtener el ultimo digito de una cifra... sin usar cadenas de textoooo
Simplemente hay que obtener el resto al dividir por 10 (aka Mod 10)
He hecho este codigo
, si no me equivoco es la mas rapida (sin contar la de Cobein, que no acaba de funcionar)
Public Function IsItPrime(ByVal lNumber As Long) As Boolean
Dim i As Long
If lNumber < 10 Then
If lNumber = 2 Then IsItPrime = True: Exit Function
If lNumber = 5 Then IsItPrime = True: Exit Function
If lNumber = 1 Then Exit Function
ElseIf (lNumber And 1) Then
Select Case (lNumber Mod 10)
Case 1, 3, 7, 9
For i = 3 To Sqr(lNumber) Step 2
If (lNumber Mod i) = 0 Then Exit Function
Next i
IsItPrime = True
End Select
End If
End Function