Hace tiempo hice un código para factorizar y la función IsPrime la modifique hasta obtener los resultados más rápidos posibles sin algoritmo y el codigo quedo así:
Explique cada línea
Explique cada línea
Código (vb.net) [Seleccionar]
Public Function IsPrime(ByVal n As Long) As Boolean
''Si es 1 no es primo
If n = 1 Then
Return False
''Si es 2 es primo
ElseIf n = 2 Then
Return True
End If
'Si la raiz de "n" es exacta entonces no es primo
If Math.Sqrt(n) Mod 2 = 0 Then
Return False
End If
''Desde el 2 hasta el número "n - 1"
For x As Long = 2 To (n - 1)
''Si "n" divisible entre "x"
''entonces no es primo
If (n Mod x) = 0 Then
Return False
End If
Next
''Despues de todas las comprobaciones
'' fallidas entonces "n" es primo
Return True
End Function