Elige un modo y escribe números enteros. «Resto» también vale con números negativos y muestra en qué se diferencia el resto matemático (0 o más) del operador % de la programación.
Índice
-
Qué puedes hacer en esta página
-
¿Para qué sirve este cálculo?
-
Cómo usar
-
Fórmulas y figuras
-
Símbolos y términos
-
Qué conviene saber de antemano
-
Cómo calcularlo con Excel
-
Cómo calcularlo con Hojas de cálculo de Google
-
Cómo calcularlo con Python
-
La fórmula en LaTeX y otras notaciones matemáticas (para copiar)
-
Cómo pedirle a ChatGPT que haga el cálculo
-
Las ventajas de DataChef
-
Funciones relacionadas
-
Todas las calculadoras de NumberChef
Qué puedes hacer en esta página
- Halla el resto de dividir un número entero \(a\) entre \(n\). También vale con números negativos (por ejemplo, \(-7\) entre \(3\)): la página muestra el resto matemático (\(0 \le r < n\)) junto al resultado del operador % de C, Java, JavaScript y otros lenguajes (que puede ser negativo)
- Comprueba si se cumple la congruencia \(a \equiv b \pmod{n}\), con la razón: si la diferencia \(a - b\) es múltiplo de \(n\)
- Obtén el resto exacto de una potencia enorme, como \(7^{100}\) entre \(13\), con los pasos de la exponenciación por cuadrados sucesivos (los números que no caben en una calculadora normal no son un problema)
- Mira el resto en un reloj (la circunferencia de mod \(n\)) y comprende cómo los restos dan vueltas y vueltas por las mismas posiciones (el reloj aparece cuando el módulo \(n\) está entre 2 y 24)
- En esta misma página tienes una explicación sencilla de las fórmulas y fórmulas para copiar y pegar en Excel, Hojas de cálculo de Google y Python
¿Para qué sirve este cálculo?
En un reloj, «las 14:00 son las 2 de la tarde» es justo el cálculo de resto 14 mod 12 = 2. Los días de la semana funcionan igual, en un reloj que da una vuelta cada 7 días. Por ejemplo, si hoy es lunes, como 100 mod 7 = 2, el día que llega dentro de 100 días es «2 días después del lunes», es decir, el miércoles.
Las agendas de papel y las aplicaciones de calendario relacionan las fechas con los días de la semana con este cálculo de resto.
La última cifra del código de barras de un producto (EAN-13) o del ISBN de un libro es un dígito de control calculado con las demás cifras mediante un resto. En un EAN-13, por ejemplo, las cifras se multiplican alternativamente por 1 y por 3, se suman, y el dígito de control es el que completa esa suma hasta el siguiente múltiplo de 10 (se obtiene a partir del resto de la suma entre 10).
Si se teclea mal una cifra, el resto ya no cuadra, y las cajas de los supermercados y las tiendas online pueden detectar el error al momento. El dígito de control de los números de tarjeta de crédito funciona con la misma idea. La letra del DNI es otro ejemplo: se divide el número entre 23 y el resto (de 0 a 22) indica la letra en la tabla TRWAGMYFPDXBNJZSQVHLCKE. Con 12345678, el resto es 14 y la letra es Z.
RSA, el cifrado de clave pública más conocido para enviar datos como el número de una tarjeta de crédito con seguridad, usa directamente en sus cálculos «el resto de una potencia enorme». Una potencia modular se puede calcular con rapidez, pero volver atrás desde el resultado hasta el número original es extremadamente difícil. Esa propiedad de un solo sentido es lo que lo hace seguro.
La exponenciación por cuadrados sucesivos, cuyos pasos muestra el modo «Potencia modular» de esta página, es el cálculo que ejecuta a diario el software de cifrado.
En programación, el operador % se usa constantemente: i % 2 distingue lo par de lo impar, e i % n crea un orden que vuelve a empezar cada n elementos (elegir al siguiente jugador en un juego por turnos, volver a la primera diapositiva después de la última, etc.).
Cuando hay números negativos, % da resultados distintos según el lenguaje, así que saber «el resto matemático frente a % en C y Java» ayuda a la hora de buscar errores.
Reparte 63 lápices a partes iguales entre 12 personas: cada una recibe 5 y sobran 3 (63 = 12 × 5 + 3). Empaquetar existencias en cajas (cuántas cajas completas de n y cuántas unidades sobran) o dividir a la gente en grupos para una fiesta: toda situación de «repartir a partes iguales y ver qué sobra» es este cálculo.
La igualdad básica de la división a = n × q + r reúne todas estas situaciones cotidianas en una sola fórmula.
Fórmulas y figuras
Símbolos y términos
Símbolos
| \(\equiv\) | es congruente con | El símbolo de la congruencia. Es un signo igual con tres rayas en lugar de dos, y dice «igual en el mundo de los restos», algo más flexible que «exactamente igual». |
| \(\bmod\) (mod) | mod | Abreviatura de «módulo», del latín modulus (una medida pequeña). «\(a \bmod n\)» significa «el resto de dividir \(a\) entre \(n\)», y «\(\pmod{n}\)» escrito detrás de una igualdad declara «estamos trabajando módulo \(n\)». |
| \(a,\ b\) | a, b | Los números enteros cuyos restos miras. En una congruencia, son los dos enteros de la izquierda y la derecha. Por costumbre, las letras del principio del alfabeto se usan para números fijos. |
| \(n\) | n | El módulo (el número entre el que divides). Se usa a menudo la letra \(n\), de «número». En esta página es un número entero mayor o igual que 1. |
| \(q\) | q | El cociente (del inglés «quotient»). Al dividir un número negativo, el cociente se redondea hacia abajo, al entero menor, para que el resto sea 0 o más (división con redondeo hacia abajo). |
| \(r\) | r | El resto (la «r» viene de «resto»). En matemáticas se elige siempre en el intervalo \(0 \le r < n\). |
| \(m\) | m | El número entero de la definición de congruencia que indica cuántas veces cabe el módulo en la diferencia. Puede ser negativo o 0. |
| \(a^{k}\) | a elevado a k | \(a\) multiplicado por sí mismo \(k\) veces (una potencia). El número pequeño \(k\) de arriba a la derecha es el exponente, que indica cuántas veces se multiplica. |
| % | por ciento (como operador, módulo) | El operador módulo que halla un resto en muchos lenguajes de programación. Es el mismo signo que el del porcentaje, pero con otra función. En C, Java y JavaScript, su resultado con números negativos puede diferir del resto matemático (mira la idea clave de la tarjeta de fórmula 1). |
Términos
| resto (residuo) | Lo que sobra cuando una división no es exacta. «Residuo» es una palabra algo más formal para lo mismo. En matemáticas se toma siempre mayor o igual que \(0\) y menor que el divisor. |
| cociente | El número entero que indica cuántas veces se puede quitar el divisor. Es la \(q\) de la igualdad básica de la división \(a = n \times q + r\). |
| módulo | El número \(n\) entre el que divides para obtener los restos con los que trabajas. En la esfera de un reloj es el número de marcas de una vuelta completa. «Módulo 12» es una forma abreviada de decir «mirando los restos al dividir entre 12». |
| congruente | Dos números enteros son congruentes módulo \(n\) cuando tienen el mismo resto al dividir entre \(n\). Es un término sobre números enteros, distinto de las figuras congruentes de la geometría (de la misma forma y tamaño). |
| congruencia | Una expresión de la forma \(a \equiv b \pmod{n}\). Las congruencias se pueden sumar, restar y multiplicar igual que las ecuaciones, así que los problemas de restos se resuelven reescribiendo. Es una herramienta básica de la teoría de números, que se usa en olimpiadas de matemáticas y en informática. |
| múltiplo | El número que se obtiene al multiplicar un entero por otro entero. «La diferencia es múltiplo del módulo» es la definición de congruencia. |
| división con redondeo hacia abajo | Una forma de dividir que redondea el cociente hacia abajo, al entero menor (en inglés, «floor division»). Cuando el divisor es positivo, el resto es 0 o más incluso con un dividendo negativo. El operador // de Python y la función ENTERO de Excel funcionan así. |
| operador módulo | El operador % que halla un resto en programación. C, Java y JavaScript redondean el cociente hacia 0 (el resto toma el signo del dividendo). Python y Ruby usan la división con redondeo hacia abajo (el resto toma el signo del divisor, así que es 0 o más cuando el módulo es positivo). |
| exponenciación por cuadrados sucesivos | Una forma de hallar el resto de una potencia enorme con pocas multiplicaciones: elevar al cuadrado una y otra vez tomando el resto, descomponer el exponente en una suma de potencias de 2 y multiplicar las piezas. También se llama exponenciación rápida (en inglés, «square-and-multiply») y se usa, entre otras cosas, en las implementaciones del cifrado RSA. |
| clase de restos | La idea de agrupar los números enteros según su resto al dividir entre \(n\). En el mundo de mod \(n\), todo entero cae en uno de \(n\) grupos, los restos \(0\) a \(n-1\). Los números pares e impares son la clasificación por el resto al dividir entre 2. |
| periodicidad | La forma en que los restos de las potencias repiten el mismo patrón. Solo hay \(n\) restos posibles, así que tienen que volver a uno que ya tuvieron. Encontrar el ciclo en los problemas de la última cifra (mod 10) es un clásico de las olimpiadas de matemáticas. |
| primos entre sí (coprimos) | Dos números enteros son primos entre sí (o coprimos) cuando su máximo común divisor es 1. Aparece en la condición para dividir los dos miembros de una congruencia entre el mismo número. |
Qué conviene saber de antemano
Esto es lo que te ayuda a usar el cálculo de esta página entendiendo lo que haces, y no solo pulsando el botón.
Si te atascas, volver a estos temas es el camino más rápido.
| División con resto (3.º–4.º de Primaria, 8-10 años) |
|
| Múltiplos y divisores (5.º–6.º de Primaria, 10-12 años) |
|
| Números negativos (1.º de ESO, 12-13 años) |
|
| Potencias y exponentes (1.º de ESO–1.º de Bachillerato, 12-17 años) |
|
| La división entera y el algoritmo de la división (Bachillerato, 16-18 años) |
|
Cómo calcularlo con Excel
| Dividendo a | -7 |
| Módulo (divisor) n | 3 |
| Resto matemático (0 o más) | =RESIDUO(B1;B2) |
| Cociente (división con redondeo hacia abajo) | =ENTERO(B1/B2) |
| Comprobación n × cociente + resto | =B2*B4+B3 |
| Resto al estilo de C y Java (redondeado hacia 0) | =B1-B2*TRUNCAR(B1/B2) |
| Entero a | 38 |
| Entero b | 14 |
| Módulo n | 12 |
| Diferencia a − b | =B1-B2 |
| Resto de la diferencia ÷ n | =RESIDUO(B4;B3) |
| Resultado (VERDADERO = congruentes) | =RESIDUO(B4;B3)=0 |
| Base a | 7 |
| Exponente k | 100 |
| Módulo n | 13 |
| Resto de a^1 | =RESIDUO(B1;B3) |
| Resto de a^2 (eleva al cuadrado la fila de arriba y toma el resto) | =RESIDUO(B4^2;$B$3) |
| Resto de a^4 | =RESIDUO(B5^2;$B$3) |
| Resto de a^8 | =RESIDUO(B6^2;$B$3) |
| Resto de a^16 | =RESIDUO(B7^2;$B$3) |
| Resto de a^32 | =RESIDUO(B8^2;$B$3) |
| Resto de a^64 | =RESIDUO(B9^2;$B$3) |
| Resto combinado para 100 = 64 + 32 + 4 | =RESIDUO(RESIDUO(B10*B9;$B$3)*B6;$B$3) |
La función RESIDUO de Excel devuelve el mismo «resto matemático» (0 o más) que esta calculadora. Incluso con números negativos, =RESIDUO(-7;3) es 2. Si necesitas el resto al estilo de C y Java, usa la última fila de la primera tabla, que usa TRUNCAR para redondear el cociente hacia 0.
La primera tabla divide −7 entre 3: el resto es 2 y el cociente es −3.
La segunda tabla comprueba 38 ≡ 14 (mod 12). El resto de la diferencia 24 es 0, así que muestra VERDADERO (congruentes).
La tercera tabla halla el resto de 7 elevado a 100 entre 13 mediante la exponenciación por cuadrados sucesivos. La respuesta es 9. «^» es el signo de la potencia. Excel solo maneja con exactitud unas 15 cifras, así que cuando el módulo n tiene más de 7 cifras, los valores elevados al cuadrado pierden precisión. En ese caso, usa la calculadora de esta página o Python.
Cómo calcularlo con Hojas de cálculo de Google
| Dividendo a | -7 |
| Módulo (divisor) n | 3 |
| Resto matemático (0 o más) | =RESIDUO(B1;B2) |
| Cociente (división con redondeo hacia abajo) | =ENTERO(B1/B2) |
| Comprobación n × cociente + resto | =B2*B4+B3 |
| Resto al estilo de C y Java (redondeado hacia 0) | =B1-B2*TRUNCAR(B1/B2) |
| Entero a | 38 |
| Entero b | 14 |
| Módulo n | 12 |
| Diferencia a − b | =B1-B2 |
| Resto de la diferencia ÷ n | =RESIDUO(B4;B3) |
| Resultado (VERDADERO = congruentes) | =RESIDUO(B4;B3)=0 |
| Base a | 7 |
| Exponente k | 100 |
| Módulo n | 13 |
| Resto de a^1 | =RESIDUO(B1;B3) |
| Resto de a^2 (eleva al cuadrado la fila de arriba y toma el resto) | =RESIDUO(B4^2;$B$3) |
| Resto de a^4 | =RESIDUO(B5^2;$B$3) |
| Resto de a^8 | =RESIDUO(B6^2;$B$3) |
| Resto de a^16 | =RESIDUO(B7^2;$B$3) |
| Resto de a^32 | =RESIDUO(B8^2;$B$3) |
| Resto de a^64 | =RESIDUO(B9^2;$B$3) |
| Resto combinado para 100 = 64 + 32 + 4 | =RESIDUO(RESIDUO(B10*B9;$B$3)*B6;$B$3) |
Cómo calcularlo con Python
a = -7
n = 3
# el % de Python devuelve el mismo «resto matemático» que esta calculadora (0 o más cuando el módulo es positivo)
print(a % n) # 2
# divmod devuelve a la vez el cociente de la división con redondeo hacia abajo y el resto (a = n × cociente + resto)
quotient, remainder = divmod(a, n)
print(quotient, remainder) # -3 2
# comprobación de congruencia: ¿38 ≡ 14 (mod 12)? (comprueba si la diferencia es múltiplo de 12)
print((38 - 14) % 12 == 0) # True
# potencia modular: resto de 7 elevado a 100 entre 13
# el pow de 3 argumentos usa la exponenciación por cuadrados sucesivos, así que termina al instante incluso con exponentes enormes
print(pow(7, 100, 13)) # 9
def c_style_mod(x, m):
# mismo resultado que % en C, Java y JavaScript (cociente redondeado hacia 0)
r = x % m
if r != 0 and x < 0:
r -= m
return r
print(c_style_mod(-7, 3)) # -1
La fórmula en LaTeX y otras notaciones matemáticas (para copiar)
a = n × q + r (0 ≤ r < n)
a = nq + r \quad (0 \le r < n)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>=</mo><mi>n</mi><mi>q</mi><mo>+</mo><mi>r</mi>
<mo>,</mo>
<mn>0</mn><mo>≤</mo><mi>r</mi><mo><</mo><mi>n</mi>
</mrow>
</math>
a = n q + r, \ 0 <= r < n
{Quotient[a, n], Mod[a, n]}
q := floor(a/n); r := a mod n;
q = floor(a/n); r = mod(a, n);
a = nq + r (0 ≤ r < n)
a ≡ b (mod n) ⇔ a − b = n × m
a \equiv b \pmod{n} \iff a - b = nm
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>≡</mo><mi>b</mi>
<mspace width="0.3em"/>
<mo>(</mo><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
<mo>⇔</mo>
<mi>a</mi><mo>−</mo><mi>b</mi><mo>=</mo><mi>n</mi><mi>m</mi>
</mrow>
</math>
a -= b (mod n) iff a - b = n m
Mod[a - b, n] == 0
(a - b) mod n = 0;
mod(a - b, n) == 0
a ≡ b (mod n)
(a × b) mod n = {(a mod n) × (b mod n)} mod n
(a \times b) \bmod n = \{(a \bmod n)(b \bmod n)\} \bmod n
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>(</mo><mi>a</mi><mo>×</mo><mi>b</mi><mo>)</mo>
<mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi>
<mo>=</mo>
<mo>{</mo>
<mo>(</mo><mi>a</mi><mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
<mo>×</mo>
<mo>(</mo><mi>b</mi><mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
<mo>}</mo>
<mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi>
</mrow>
</math>
(a * b) mod n = ((a mod n) * (b mod n)) mod n
Mod[a b, n] == Mod[Mod[a, n] Mod[b, n], n]
(a * b) mod n = ((a mod n) * (b mod n)) mod n;
mod(a*b, n) == mod(mod(a, n)*mod(b, n), n)
(a×b) mod n = ((a mod n)×(b mod n)) mod n
a ≡ b, c ≡ d (mod n) ⇒ a+c ≡ b+d, a−c ≡ b−d, a×c ≡ b×d (mod n)
a \equiv b,\ c \equiv d \pmod{n} \Rightarrow a + c \equiv b + d,\ a - c \equiv b - d,\ ac \equiv bd \pmod{n}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi><mo>+</mo><mi>c</mi><mo>≡</mo><mi>b</mi><mo>+</mo><mi>d</mi>
<mo>,</mo>
<mi>a</mi><mo>−</mo><mi>c</mi><mo>≡</mo><mi>b</mi><mo>−</mo><mi>d</mi>
<mo>,</mo>
<mi>a</mi><mi>c</mi><mo>≡</mo><mi>b</mi><mi>d</mi>
<mspace width="0.3em"/>
<mo>(</mo><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
</mrow>
</math>
a + c -= b + d, \ a - c -= b - d, \ a c -= b d (mod n)
Mod[a + c, n] == Mod[b + d, n] && Mod[a - c, n] == Mod[b - d, n] && Mod[a c, n] == Mod[b d, n]
(a + c) mod n = (b + d) mod n;
mod(a + c, n) == mod(b + d, n)
a + c ≡ b + d (mod n)
Cómo pedirle a ChatGPT que haga el cálculo
Eres un asistente de cálculo para la teoría de números (propiedades de los números enteros). Haz el siguiente cálculo ejecutando realmente código de Python y basa tu respuesta únicamente en los números del resultado de la ejecución (no respondas con cálculo mental ni a ojo). Calcula estos 3 problemas. 1. El resto matemático de −7 entre 3 (elegido para que sea 0 o más) y el cociente 2. Si se cumple 38 ≡ 14 (mod 12) (muestra también si la diferencia es múltiplo de 12) 3. El resto de 7 elevado a 100 entre 13 (usa pow(7, 100, 13)) Usa %, divmod y pow(base, exponente, módulo) de Python, y muestra las fórmulas que has usado y los números del resultado de la ejecución.
Cómo usar
-
1Introduce los númerosEscribe en los campos los números con los que quieres calcular
-
2CalculaHaz clic en el botón «Calcular»
-
3Consulta el resultadoEl resultado aparece al instante. En la misma página también encontrarás el desarrollo del cálculo y la explicación de la fórmula
Las ventajas de DataChef
Sin conocimientos técnicos: fácil e intuitivo
Sin necesidad de dar datos personales
Los archivos se borran automáticamente tras la descarga
Sin necesidad de atribución
Sin necesidad de pedir permiso