martes, 4 de junio de 2013

Número primo desde .NET

Los numeros primos son aquellos que tienen solo dos divisores, ellos mismos y 1.

Mas Información Clic Aqui

Podemos calcular de diferentes formas si el numero indicado lo es, desde .NET tenemos este código que lo realiza:

Public Class Form1
Dim Com As Long
Dim Result As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCalcular.Click
Dim x As Long
Me.Text = "Calculando..."
For x = 1 To Val(txtValor.Text)
    Result = Val(txtValor.Text) Mod x
    If Result = 0 Then
    Com += 1
    End If
    Application.DoEvents()
Next x
If (Com <= 2) And (Com <> 1) Then
   Me.Text = "Es primo? : SI"
Else
   Me.Text = "Es primo? : NO"
End If
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
End
End Sub
End Class


Un DoEvents es necesario ya que si colocamos números muy grandes se "colgaría" la aplicación mientras busca un resultado, podemos limitarnos cambiando el valor de las variables en cuestión a Integer y realizar una comparación para exigir al usuario trabajar con números menos que 32767 (por ejemplo)

En el evento Click del cmdCalcular antes que lo que hay actualmente se pondría:

If Val(txtValor) > 32767 Then
   Msgbox("No se permiten numeros mayores a 32767")
   Exit Sub
End If

Es una de las tantas posibilidades para no tener que ejecutar el código de manera que se "cuelgue".

Saludos.

No hay comentarios:

Publicar un comentario