Resumen
Sabes cómo determinar si un número es par o impar, o alguna vez te preguntaste como hacer un programa que te señalara que números son primos y que no, la mejor forma de hacerlo es mediante el Modulo, el cual es un Operador Aritmético el cual nos permite conocer el residuo de una división de dos números enteros.
Abstract
Do you know how to determine if a number is even or odd, or even wondered how to make a program that show you what numbers are prime or not, the best way to do this is by Module, which is an arithmetical operator which allows us to know the residue of a division of two integers.
¿Qué es el operador aritmético módulo?
Se le conoce como Módulo al operador aritmético dado por el residuo de una división entera. Expresado de otra manera (Imagen 1):
Imagen 1
Donde el divisor se encuentra dividiendo a otro número conocido como dividendo. A esto encontramos un numero entero como resultado el cual llamamos cociente.
En el caso de que divisor no entre un número exacto de veces en el dividendo, lo que conocemos como número no divisible, nos va a generar un residuo o resto.
A continuación, vemos un ejemplo de división de enteros donde no nos queda residuo (Imagen 2a) y después una en la que si nos genera (Imagen 2b):
Imagen 2a
Imagen 2b
Para comprobar lo anterior podemos realizar la operación contraria de la Imagen 2a (Imagen 3a):
Imagen 3a
En cambio, cuando intentamos comprobar la operación de la Imagen 2b nos encontramos con lo siguiente (Imagen 3b):
Imagen 3b
Como podemos observar nos faltan cuatro unidades las cuales corresponden a las cuatro unidades del residuo (Imagen 4):
Imagen 4
Con esto podemos deducir la siguiente formula (Imagen 5):
Imagen 5
Ahora bien, podemos concluir que el modulo es el sobrante de una división entera.
¿Cómo aplicar en la programación el operador aritmético módulo?
Si bien el módulo es empleado en todas las matemáticas, este operador aritmético cobra un papel muy importante en el momento de realizar ciertos procesos o algoritmos en nuestros programas. Si bien todos los lenguajes de programación más usados se apoyan de este operador en particular, aquí nos enfocaremos en cómo utilizarlo en C++, aunque también describiré la forma de hacerlo en pseudocódigo.
Operador Aritmético: MODULO |
|
Pseudocódigo |
C++ |
mod | % |
Tabla 1
En la tabla anterior (Tabla 1) podemos observar cómo se define el modulo dentro de C++ y del pseudocódigo.
A continuación (Código 1) te muestro como se emplea este operador en c++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> //Solo requeriremos de la biblioteca "iostream" using namespace std; int main() { int divs = 8; //Este sera nuestro divisor int divd = 100; //Este nuestro dividendo int result, resid; result = divd / divs; //Aqui realizamos la operacion de la división resid = divd % divs; //Y aqui determinamos el modulo cout << "Resultado: " << result << endl; //Mostramos el resultado de la división cout << "Residuo: " << resid; // Y el residuo return 0; } |
Código 1
Como podemos observar la forma de determinar el modulo es mediante el siguiente esquema:
X = Y % Z;
en donde:
X | Donde se guarda el residuo |
Y | El dividendo |
Z | El divisor del que se determina el modulo |
% | Expresión de modulo en C++ |
Tabla 2
Tenemos que tener en cuenta que el modulo solo se puede usar con números enteros, además de que es un operador que siempre va a necesitar de dos números, por lo que se denomina binario.
Ahora bien, este mismo código lo podemos entender mediante su pseudocódigo (Código 2):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Incluir bibliotecas Inicio var entero divs = 8 var entero divd = 100 var entero result, resid result <- divd / divs resid <- divd mod divs Mostrar result Mostrar resid Fin |
Código 2
Si bien en ambos casos nos va a dar como resultado que la consola nos muestre lo siguiente (Código 3):
1 2 |
Resultado: 16 Residuo: 4 |
Código 3
Ejemplos del operador aritmético módulo
Como primer ejemplo tenemos un programa que nos determina si un número es par o impar (Código 4):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <iostream> using namespace std; int main() { int numero, resul; cout << "Programa que te muestra si es un numero par o impar" << endl; cout << "Introduce un numero: "; //Pide un numero cualquiera cin >> numero; //Y se guarda en la variable numero resul = numero % 2; //se determina el modulo de dos y se guarda en resul /* la intención de determinar el modulo es saber si nos queda una unidad lo que determina que numero es un numero indivisible entre dos, lo que es impar; en cambio si no nos queda ninguna unidad, se determina que es un numero divisible entre dos, lo que es par */ if(resul==1) //Aquí nos sobra una unidad { cout << "El numero es impar"; //Lo que significa numero impar } else //En otro caso no nos sobra ninguna unidad { cout << "El numero es par"; //Lo que significa numero impar } return 0; } |
Código 4
Tenemos dos estados: par (Código 4a) e impar (Código 4b) los cuales muestro a continuación:
1 2 3 |
Programa que te muestra si es un numero par o impar Introduce un numero: 40 Es numero es par |
Código 4a
1 2 3 |
Programa que te muestra si es un numero par o impar Introduce un numero: 39 Es numero es impar |
Código 4b
Como segundo ejemplo te muestro un programa para determinar si un número es primo o no (Código 5):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#include <iostream> using namespace std; int main() { int numero, divs=0, i; /*La variable divs la usaremos para contar el numero divisores del numero*/ cout << "Programa para determinar si un numero es primo" << endl; cout<< "Ingrese el numero: "; cin >> numero; numero = abs(numero); /*Esta funcion nos permite utilizar negativos también, Convirtiendolos en su absoluto*/ for(i=1;i<(numero+1);i++) { if(numero%i==0) { divs++; /*Si el número es divisible entre i entonces divs sera aumentado en 1*/ } } if(divs!=2) /*Si divs es diferente a dos, que es el número de divisores máximos que puede tener un primo, se determina que no es un primo*/ { cout<<"No es un numero primo"; } else { cout<<"Es un numero primo"; } return 0; } |
Código 5
Aquí nos encontramos con dos estados:
Primero en donde no es un numero primo (Código 5a)
1 2 3 |
Programa para determinar si un numero es primo Ingrese el numero: 20 No es un numero primo |
Código 5a
Y segundo en donde es un número primo (Código 5b)
1 2 3 |
Programa para determinar si un numero es primo Ingrese el numero: 29 Es un numero primo |
Código 5b
Aquí podrás encontrar los links a mi repositorio en GitHub con los códigos aquí descritos.
Link hacia mi GitHub con el primer código
Link hacia mi Github con el pseudocódigo
Link hacia mi GitHub con el código del par-impar
Link hacia mi Github con el código del número primo
Las imágenes aquí expuestas son de mi completa autoría.
Me fascino la explicacion, los ejemplos y las instrucciones como estan detallados. Muy buen aporte, me fue de utilidad.