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
si me pudiesen hechar una mano solo darme el camino para seguir estaria agredecido. Les dejo los sources:
factoriza números enteros incluso mayores que Decimal.MaxValue en menos de una décima de segundo para la mayoría hay números que se factorizan más lento que otros pero es un un porcentaje muy bajo. La solución es exponencial en tiempo polinomial, quiere decir que todo número N que sea Natural puede ser factorizado por este algoritmo en un tiempo relativamente corto y este se va exponiendo (Aumentando) con los dígitos que contenga N.
Gracias por la recomendación.