A continuación veremos un programa en Excel VBA que comprueba si un número es un número primo o no.
Antes de empezar: en matemáticas, un número primo es un número que tiene exactamente dos divisores numéricos distintos: 1 y él mismo. Los 25 números primos más pequeños son: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 y 97. Por ejemplo, 8 tiene 1, 2, 4 y 8 como divisores y no es un número primo.
Situación:
1. Primero, declaramos tres variables. Una variable entera que llamamos divisores, una variable larga que llamamos número y una variable larga que llamamos i. Usamos variables largas aquí porque las variables largas tienen mayor capacidad que las variables enteras.
Dim divisores como entero, número igual de largo, i igual de largo
2. Inicializamos dos variables. Inicializamos los divisores de las variables con el valor 0. Usamos la función InputBox para obtener un número del usuario.
divisores = 0 number = InputBox(«Introducir un número»)
Después de que el usuario haya introducido un número, queremos comprobar si este número es un número primo o no. Recuerde, un número primo tiene exactamente dos divisores de números distintos: 1 y él mismo.
3. Empezamos un bucle de For Next.
Para i = 1 Para el número
4. Ahora viene la parte más importante del programa. Para calcular el número de divisores de un número, usamos el operador Mod. El operador Mod da el resto de una división. Así que 7 mod 2 daría 1. 7 se divide por 2 (3 veces) para dar un resto de 1. Sólo si «el número mod i’ es igual a 0, i es un divisor de número. En este caso queremos incrementar los divisores de las variables por 1. La macro de abajo hace el truco.
Si el número Mod i = 0 entonces divisores = divisores + 1 Finalizar si
El Excel VBA comprueba esto para i = 1, i = 2, i = 3, i = 4 hasta i = número. Observe que i = 1 e i = número siempre son divisores de número. Sólo si estos números son los únicos divisores del número, el número es un número primo.
5. No te olvides de cerrar el bucle.
Siguiente…
6. Si los divisores son iguales a 2, mostramos un msgbox diciendo que el número introducido es un número primo. Si el número de divisores es superior a 2, mostramos un mensaje diciendo que el número introducido no es un número primo.
Si los divisores = 2 Entonces Número de MsgBox & «es un número primo» Else Número de MsgBox & «no es un número primo» Finalizar si
7. Pruebe el programa.
Resultado para 104729: