El primer número del inspector en Excel VBA
A continuación vamos a ver 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 de números distintos: 1 y él mismo. El más pequeño veinticinco números primos 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:
-
En primer lugar, declaramos tres variables. Una variable entera que llamamos divisores, una variable mucho tiempo que llaman número y una variable de largo que llamamos i. Podemos utilizar las variables de largo aquí porque las variables largos tienen mayor capacidad que variables enteras.
Dim divisors As Integer, number As Long, i As Long
-
inicializar dos variables. Inicializamos los divisores variables con valor 0. Se utiliza la función InputBox para obtener un número de usuario.
divisors = 0 number = InputBox("Enter a number")
Después de que el usuario ha 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.
-
Se inicia un bucle For Next.
For i = 1 To number
-
Ahora viene la parte más importante del programa. Para calcular el número de divisores de un número, se utiliza el operador Mod. El operador Mod da el resto de una división. Así 7 mod 2 daría 1. 7 se divide por 2 (3 veces) para dar un residuo de 1. Sólo si «número MOD I’ es igual a 0, i es un divisor del número. En este caso queremos incrementar la variable divisores por 1. la macro a continuación hace el truco.
If number Mod i = 0 Then divisors = divisors + 1 End If
cheques Excel VBA esto para i = 1, i = 2, i = 3, i = 4 hasta i = número.
-
Tenga en cuenta que i = 1 e i = número siempre son divisores de varias Sólo si estos números son los únicos divisores de serie, el número es un número primo
-
no se olvide de cerrar el bucle..
-
Next i
-
Si divisores es igual a 2, se muestra un MsgBox diciendo que el número introducido es un número primo. Si el número de divisores es mayor que 2, se muestra un MsgBox diciendo que el número introducido no es un número primo
If divisors = 2 Then MsgBox number & " is a prime number" Else MsgBox number & " is not a prime number" End If
-
Pruebe el programa
Resultado de 104729:..