Por el momento, no existe en Excel una función para saber si un número es primo. Pero la podemos crear en el editor de VBA. Recordemos que un número es primo si solamente es divisible por 1 y por sí mismo. Para saber si un número es primo no hay otra forma que dividirlo por todos los números primos menores que él. Si resulta que es divisible por al menos uno de ellos, el número NO es primo.
Si no resulta ser divisible por ninguno, el número es primo. Este procedimiento requiere dos observaciones: n No es necesario hacer la división por todos los números menores al dado. Alcanza con probar con los menores a la raíz cuadrada del número dado. n Como no sabemos de antemano cuáles son todos los números primos, dividiremos por todos los números.
Resumiendo, el código de la función sería más o menos así:
Function primo(x) primo = True For i = 2 To Sqr(x) If x Mod i = 0 Then primo = False Next End Function
Según este código, comenzamos suponiendo que el número es primo y que la función devolverá el valor VERDADERO (True). Luego comienza a dividir por todos los números mayores que uno, hasta la raíz cuadrada del número por testear.
Si una de las divisiones da exacta, el número no es primo y la función devolverá el valor lógico FALSO (False).
Para probar la divisibilidad usamos el operador Mod (módulo), que devuelve el resto de la división entre dos números. Si el resto es cero, es que el primer número es divisible por el segundo. El operador Mod es equivalente a la función RESIDUO de Excel.