Suscribase:

sábado, 28 de abril de 2012

Números primos Visual Basic 6.0

Los números primos al igual que otras clasificaciones de los números naturales fueron clasificados por Pitágoras y su secta, cuyos miembros se llamaban -los pitagóricos-.

Este programa dará como resultado los números primos desde un valor hasta otro que especifiquemos.

Para el formulario necesitaremos 2 textbox (txtdesde y txthasta). Dos labels, 1 Listbox (list1), y 1 commandbutton (cmdcalcular). Como aparece en la imagen de la derecha.

En el botón calcular insertar el siguiente código:


Private Sub cmdcalcular_Click()

If Val(txtdesde.Text) < Val(txthasta.Text) Then
List1.Clear

d = Val(txtdesde.Text)
h = Val(txthasta.Text)
v = d - 1

Do While v < h
v = v + 1

'Identificar si el numero es primo
a = 0
b = 1


Do While b <= v
c = v Mod b

If c = 0 Then
a = a + 1
b = b + 1

Else
b = b + 1
End If

Loop

If a = 2 Or v = 1 Then

List1.AddItem (v)
End If
Loop

Else
MsgBox ("El valor de Desde debe ser menor que el de Hasta")
End If

txtdesde.Text = ""
txthasta.Text = ""
txtdesde.SetFocus

End Sub







2 comentarios:

K P E A : ) dijo...

Para que sirven las variables v, a y b?
cual es su funcion en el programa ?

Webmistress dijo...

La variable “v” la utilizo para representar el valor que insertemos en el textbox "desde", entonces le resto 1 al valor de “d” porque el contador de el Do While le sumara 1 a esa variable lo que haría que "desde" empezara desde un valor mas de el que hallamos especificado.

La variable "a" la inicializamos en 0, porque esta contara cada vez que al realizar la operación “v mod b”, de como resultado 0.

Si es así se le sumara 1 a la variable “a”. Cuando "a" sea mayor que 2. Entonces el número se habrá divido por la unidad y otros números, por lo tanto dicho número no es primo, porque ya habrá excedido la regla de: numero primo solo es divisible por el mismo y la unidad.

La variable "b" simplemente representara el numero por el que se ira dividiendo "v", y aumentando de 1 en 1, hasta que "b" sea mayor que "v". Sea o no sea el resultado de “v mod b” igual a 0.

Al final si el primer numero representado por “v” ha sumado consecutivamente la variable “a” solo hasta 2, entonces es primo porque se habrá divido desde 1 (variable b) hasta el mismo (variable v) y solo dio como resultado de división exacta 2 veces, osea se dividió solo por la unidad y el mismo. Y se agregara al Listbox, así sucesivamente hasta que el valor de v(desde) sea menor que el de h(hasta).

Publicar un comentario