Calculadora de modulo

Calcula el resto de la division entera en tres modos: basico, reloj y exponencial modular.

Truncado
C, C++, JS, Java
Suelo
Python, Ruby
Euclidiano
Mod matemático, siempre ≥ 0
Divisibilidad
MCD(a, b)
Explicación paso a paso

Introduce valores para ver el desglose.

Las tres convenciones del módulo

Cuando el dividendo a es negativo, los distintos lenguajes no coinciden en qué debe devolver a mod b. Los tres resultados son correctos; simplemente aplican reglas distintas.

Truncado (C, C++, JS, Java)

Usa q = trunc(a/b), redondeando hacia cero. El resto toma el signo del dividendo. Ejemplo: -17 % 5 = -2.

Suelo (Python, Ruby)

Usa q = floor(a/b), redondeando hacia −∞. El resto toma el signo del divisor. Ejemplo: -17 % 5 = 3.

Euclidiano (mod matemático)

Siempre devuelve un resto no negativo en el rango [0, |b|). Es la convención usada en teoría de números. Ejemplo: -17 mod 5 = 3.

Preguntas frecuentes

¿Por qué distintos lenguajes dan resultados diferentes con números negativos?
El operador módulo se define por a = b*q + r, pero el estándar deja el signo de r a criterio del lenguaje. C, C++, Java y JavaScript truncan el cociente hacia cero, por lo que el resto conserva el signo de a. Python y Ruby lo redondean hacia −∞, por lo que el resto conserva el signo de b. Ambas satisfacen la ecuación, solo eligen cocientes distintos.
¿Qué convención debo usar?
Para matemáticas puras, teoría de números o cuando necesitas un resultado en [0, b), usa el mod euclidiano. Para indexación circular (como un buffer circular) suele convenir la convención suelo, ya que gestiona bien los negativos. Si implementas un runtime de lenguaje o debes reproducir el comportamiento de C, usa el truncado.
¿Qué es la divisibilidad y cómo la comprueba esta calculadora?
a es divisible por b cuando a mod b = 0, es decir, el resto es cero. Esta calculadora marca la divisibilidad en cuanto el resto euclidiano es 0. Por ejemplo, 100 es divisible por 5 (100 mod 5 = 0) pero no por 7 (100 mod 7 = 2).
¿Dónde se usa el módulo en la vida real?
En todas partes. Las tablas hash distribuyen claves en cubos con hash(clave) mod N. La criptografía (RSA, Diffie–Hellman, curvas elípticas) se basa en aritmética modular. Los cálculos de hora y fecha (día de la semana, reloj) usan mod 7, mod 24, mod 60. Los dígitos de control como ISBN o Luhn usan mod 10 o mod 11. Los generadores pseudoaleatorios usan mod 2^32. Paginación: (página - 1) mod tamañoPágina.
¿Admite esta calculadora números muy grandes?
Sí. Las entradas se analizan como BigInt de JavaScript, por lo que no hay límite de precisión en 253. Puedes pegar un número de 200 dígitos y obtener un resultado exacto. La pestaña de exponencial modular utiliza cuadrado y multiplicación rápida con BigInt, por lo que expresiones como 123456789987 mod (109+7) se calculan al instante.
¿Qué es la exponencial modular y por qué es eficiente?
La exponencial modular calcula (baseexponente) mod m sin construir jamás la potencia intermedia enorme. El algoritmo eleva al cuadrado la base y reduce mod m en cada paso, usando la expansión binaria del exponente. Esto requiere O(log exponente) multiplicaciones BigInt, suficientemente rápido para claves RSA de 2048 bits. Un bucle ingenuo que multiplicase exponente veces tardaría miles de millones de años con la misma entrada.

Para uso educativo y de desarrollo. Los resultados son exactos para entradas enteras dentro del rango BigInt.

El modulo es el resto de dividir un entero a entre b. Ejemplo: 17 mod 5 = 2. Con negativos, C y JS devuelven -2 (truncado), Python devuelve 3 (suelo) y el mod matematico siempre da 3 (euclidiano). Esta calculadora muestra los tres resultados a la vez. El modo reloj ilustra como 14 + 5 mod 12 = 7, util para calculos de tiempo y programacion ciclica. La exponencial modular calcula base elevado a exponente mod m con aritmetica BigInt, clave en criptografia RSA y Diffie-Hellman. Los calculos son exactos sin limite de precision a 2^53.