Hola! bueno, comienzo por decirte que tu algoritmo es solo la primera funcion de una funcion maestra en la que comprueba de forma matemática si es
verdaderamente un numero primo.
Bueno, he chekado los links (en orden) pues no sabia demasiado de los numeros primos.
¿Que es un numero Primo?
>
http://es.wikipedia.org/wiki/N%C3%BAmero_primoAKS "PRIMES in P" algoritmo (el mejor y mas reciente algoritmo)
>
http://fatphil.org/maths/AKS/Implementación AKS (en C++)
>
http://yves.gallot.pagesperso-orange.fr/src/aks.htmlEn la implementación notarás de lo que hablo, es mucho más largo el proceso aunque para numero pequeños estará bien.
Este trozo de código lo he pescado desde la implemetación y lo he traducido a Visual Basic 6 (no se como quedaria en Visual Basic 2010):
'Esto lo he hecho para testear la funcion.
Private Sub Form_Load()
Dim j As Integer
For j = 0 To 100
if isPrime(j) Then
End If
Next j
End Sub
Function isPrime(ByVal iNum As Integer) As Boolean
If (iNum < 2) Then isPrime = False: Exit Function
If (iNum < 4) Then isPrime = True: Exit Function
If (iNum Mod 2 = 0) Then isPrime = False: Exit Function
Dim iMax As Integer: iMax = CInt(Sqr(CDbl(iNum)))
Dim i As Integer
For i = 3 To iMax Step 2
If (iNum Mod i = 0) Then isPrime = False: Exit Function
Next i
isPrime = True
End Function
umm.. integrando la funcion
isPrime() yo pondría tu código de esta forma:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If isPrime(Val(TextBox1.Text)) Then
Label1.Text = ("El número es Primo")
Else
Label1.Text = ("El número no es Primo")
End If
End Sub
Private Function isPrime(ByVal iNum As Integer) As Boolean
' Versión traducida de la antes mensionada
' función isPrime para Visual Basic Express 2010
End Function
End Class