Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Recuérdese que el textBox1 es para introducir el número que se quiere saber si es primo o no y que el textBox2 es donde se imprime el resultado dando a conocer si el número es primo o no luego de hacer las evaluaciones respectivas.
Dim residuo As Double 'Para almacenar los residuos.
Dim contador As Integer 'Contador para saber cuántas veces se dan residuos de cero.
For i As Integer = 1 To Val(TextBox1.Text) 'Ciclo desde 1 hasta el número a evaluar.
residuo = Val(TextBox1.Text) Mod i 'Saca el residuo que resulta de dividir el número a evaluar con la iteración en la que va el For, de modo que si el número a evaluar fuera el 5, entonces saca el resuduo de 5 con 1 en la iteración 1, 5 con 2 en la iteración 2, 5 con 3 en la iteración 3, 5 con 4 en la iteración 4 y 5 con 5 en la iteración 5. En ese caso residuos exactos de cero solamente van a salir 2, que es 5 Mod 1 y 5 Mod 5. Por lo tanto el número 5 es primo porque el contador llegaría a valer 2. En el caso del 4, sacaría el resuduo de 4 con 1 en la iteración 1, 4 con 2 en la iteración 2, 4 con 3 en la iteración 3 y 4 con 4 en la iteración 4. En este caso residuos exactos de cero van a salir 3, que es 4 Mod 1, 4 Mod 2 y 4 Mod 4. Por lo tanto el contador llegaría a valer 3, siendo entonces mayor que 2, por lo cual se concluye que el 4 no es un número primo.
If residuo = 0 Then
contador += 1 'Equivale a escribir "contador = contador + 1"
End If
Next
If contador <= 2 Then 'Si el contador vale 1 o 2, el número a evaluar es primo. Si el contador vale 3 o más, el número a evaluar no es primo.
TextBox2.Text = "El número introducido es primo."
Else 'Este "else" se da en el caso que el contador valga 3 o más.
TextBox2.Text = "El número introducido no es primo."
End If
End Sub
End Class
Jaime Montoya
jaimemontoya@jaimemontoya.com
www.jaimemontoya.com