Saltar al contenido

Diario de clases

Clases de Jesús Soto

Menú
  • Fórmulas
Menú

MAD: Congruencias con maxima

Posted on 25 de febrero de 2026

Restos potenciales

Veamos el siguiente ejercicio:

Ejemplo: Dado \(n=71\cdots 71\), donde la pareja 71 se repite 10 veces, ¿cuál es su resto al dividirlo por 17?

El número en cuestión es \(71717171717171717171\) y el problema nos plantea: encontrar la solución de la ecuación \[71717171717171717171\equiv X\pmod{17}.\] Para resolverlo tendremos que calcular su resto al dividirlo por 17. Utilicemos las propiedades de divisibilidad:\[71717171717171717171=71717\cdot 10^{15}+17171\cdot 10^{10}+71717\cdot 10^5+17171\] Sabemos que \(71717=\dot{17}+11\), \(17171=\dot{17}+1\), luego \[71717171717171717171\equiv r\pmod{17}\] donde \(r\) es el mismo resto que \[11\cdot 10^{15}+1\cdot 10^{10}+11\cdot 10^5+1\equiv r\pmod{17}\] Realicemos lo mismo para \(10^{i}\), con \(i=5,10,15\) y tendremos \[11\cdot 12+1\cdot 2+11\cdot 6+1\equiv r\pmod{17},\] obteniendo que \(r=14\).

Para resolverlo hemos tenido que calcular \( 10^i\pmod{17}\) para \(i=5,10,15\). Si lo analizamos desde el punto de vista de resolver \( 10^i\pmod{17},\, \forall i\in\mathbb{Z}^+\) estaremos planteando un problema de restos potenciales. Los restos potenciales son los residuos positivos que resultan de dividir las potencias sucesivas de un número entero (base) por otro número positivo (módulo). Estos restos se repiten cíclicamente (periodo) o se vuelven cero, formando secuencias periódicas puras o mixtas menores que el módulo, útiles para resolver problemas complejos de divisibilidad.

Definición: Sean \(a,n\in\mathbb{Z}^+\), llamamos restos potenciales de \(a\) módulo \(n\) a los restos \[a^i\equiv r_i\pmod{n},\, \forall i\in\mathbb{Z}^+\]

Como veremos, estos restos son cíclicos y, por tanto, el número de restos distintos es finito.

Ejercicio: Determinar el resto de la división de \(751^{157}\) entre 22.

Observemos que el problema es equivalentes a resolver la ecuación \(751^{157}\equiv X {\pmod {22}} \). Como \(751\equiv 3 {\pmod {22}} \), resultará \[751^{157}\equiv 3^{157} {\pmod {22}}\] Por tanto, tendremos que calcular los restos potenciales de 3 módulo 22:
\[\begin{align*} 3^{5n}&\equiv 1 {\pmod {22}} \\ 3^{5n+1}&\equiv 3 {\pmod {22}} \\ 3^{5n+2}&\equiv 9 {\pmod {22}} \\ 3^{5n+3}&\equiv 5 {\pmod {22}} \\ 3^{5n+4}&\equiv 15 {\pmod {22}} \end{align*}\]
Si tenemos en cuenta que \(157=5n+2\Leftrightarrow 157\equiv 2\pmod{5}\), será
\[3^{157}=3^{5n+2}\equiv 3^{2}\equiv 9 {\pmod {22}}\]

Estos restos cumplen las siguientes propiedades: \[\begin{align*} a^0 &\equiv 1{\pmod{n}} \\ a &\equiv a{\pmod{n}} \\ a^k&\equiv r_k{\pmod{n}}\Rightarrow a^{k+1}\equiv a\cdot r_k{\pmod{n}} \end{align*}\]

Además a partir de un resto que se repiten, se repiten todos en forma cíclica.

Ejercicio: Verifica si es cierta o no la afirmación: «Para todo \(n\) natural \(6^{n}-1\) es divisible entre 5».

Calculemos los restos potenciales de 6 módulo 5:
\[\begin{align*} 6^{0}&\equiv 1 {\pmod {5}} \\ 6^{1}&\equiv 1 {\pmod {5}} \end{align*},\]
luego para todo \(n\in\mathbb{Z}^+\) \[6^n\equiv 1\pmod{5}\Rightarrow 5|(6^n-1)\]

Ejercicio: Crear una función,\(\mathbf{restos}(a,n)\), que devuelva los restos potenciales de \(a\) módulo \(n\).

(%i2) restos(n,m):=block([r,proximo,repetido],
   r:[1],               
   proximo:mod(n,m),   
   repetido:false,

   whilenotrepetidodo(
       /* Primero añadimos el número, sea cual sea */
       r:append(r,[proximo]),
      
       /* Calculamos el que vendría después */
       proximo:mod(proximo·n,m),
      
       /* Comprobamos si ese «proximo» ya existe en nuestra lista */
       ifmember(proximo,r)then(
           /* Si ya existe, lo añadimos UNA última vez para ver el cierre */
           r:append(r,[proximo]),
           repetido:true
       )
   ),
   r
)$
restos(10,16);

\[\left[ 1{,}10{,}4{,}8{,}0{,}0\right] \]

Observar que la función devuelve el último valor que se repite. Si el último es igual al penúltimo no dice que a partir del penúltimo, todos son iguales. Si no coincide, entonces es cíclico.


Ejercicio: Calcular el resto potencial de \(4^{68}\pmod{57}\)

Primero calcularemos los restos potenciales de 4 módulo 57, utilizando la función anterio.

(%i4) r:restos(4,57);
ciclo:length(r)−1;

\[{ }\left[ 1{,}4{,}16{,}7{,}28{,}55{,}49{,}25{,}43{,}1\right] \]

\[{ }9\]

(%i6) mod(68,ciclo);/* este es el exponente de 4 modulo 57 */
r[%+1];/* la posición que ocupa en los restos potenciales de 4 modulo 57*/

\[{ }5\]

\[{ }55\]


Uno de los problemas es determinar cuándo se produce el ciclo. Para resolverlo no ayudaremos de la función fi de Euler:

Teorema de Euler: Si \(a,n\in\mathbb{Z}\) con \(\mathbf{mcd}(n,a)=1\), entonces \(a^{\varphi (n)}\equiv 1{\pmod {p}}\)

Ecuación de congruencias

Nuestro propósito principal es resolver la ecuación de congruencias \(aX\equiv b {\pmod {n}}\). Si \(mcd(n,a)=1\), vimos que podemos utilizar la solución de Bezout para resolverlo:

Ejemplo: Resolver la ecuación \[7X\equiv 3 {\pmod {103}}\]

(%i5) ex:eucl_ext(7,103);
if ex[1]<0 then inv:mod(ex[1],103) else inv:ex[1]$
sol:mod(inv*3,103)$
print(«Solución X=»,sol,«(103)»)$

(ex)[−44,3,1]Solución X=74(103)

Verifiquémoslo:

(%i6) mod(7*sol,103);

(%o6) 3


Sin embargo, si \(mcd(n,a)=1\) tenemos una herramienta poderosa: el teorema de Euler. Utilizándolo, tendremos

\[aX\equiv b {\pmod {n}}\to a^{\varphi (n)-1}aX\equiv a^{\varphi (n)-1}b {\pmod {n}}\to X\equiv a^{\varphi (n)-1}b {\pmod {n}},\]

con lo que obtendremos la solución antes.

Ejemplo: Resolver \(5X\equiv 12 {\pmod {21}}\)

Necesitamos encontrar el inverso de 5 en \(\mathbb{Z}_{21}\), ya para ello utilizamos el teorema de Euler: \[5\cdot 5^{(\varphi(21)-1)}\equiv 1{\pmod {21}}\] Ahora \(\varphi(21)=(3-1)(7-1)=12\), de modo que \[5^{11}\equiv 17{\pmod {21}}.\]
Solo nos falta aplicarlo \[5X\equiv 12 {\pmod {21}}\to X\equiv 17\cdot 12\equiv 15{\pmod {21}}\]

Ejemplo: Resolver \(6X\equiv 22 {\pmod {77}}\)

Necesitamos encontrar el inverso de 6 en \(\mathbb{Z}_{77}\), que existe pues \(\mathbf{mcd}(6,77)=1\). Por el teorema de Euler: \[6\cdot 6^{(\varphi(77)-1)}\equiv 1{\pmod {77}}\] Ahora \(\varphi(77)=(7-1)(11-1)=60\), de modo que tenemos que determinar \[6^{59}\equiv X_0 {\pmod {77}}.\]

El teorema de Euler nos garantizaba que \(6^{60}\equiv 1 {\pmod {77}}\), pero no nos garantiza que 60 sea el primer entero, \(n\), tal que \(6^{n}\equiv 1 {\pmod {77}}\); es decir, puede existir un entero más pequeño que lo cumpla. Ahora si \(n\) es tal que \(6^{n}\equiv 1 {\pmod {77}}\), entonces \(n|60\). Probemos con los divisores de 60: [1, 5, 3, 15, 2, 10, 6, 30, 4, 20, 12, 60]

\[\begin{align*} 6^2&\equiv 36 (77)\\ 6^3&\equiv 62 (77)\\ 6^4&\equiv 64 (77)\\ 6^5&\equiv 76 (77)\\ 6^6&\equiv 71 (77)\\ 6^{10}&\equiv 1 (77) \end{align*}\]

Es decir, será suficiente con: 59=5*10+9, \[6^{59}\equiv 6^{9}\equiv 13 {\pmod {77}}.\]

Solo nos falta aplicarlo: \[6X\equiv 22 {\pmod {77}}\to X\equiv 13\cdot 22\equiv 55{\pmod {77}}\]


Si el módulo en cuestión es primo, la ecuación es más simple:

Teorema de Fermat: Si \(p\) es primo y \(p\not\,\!|\,a\) entonces, \(a^{ (p-1)}\equiv 1{\pmod {p}}\)

Aunque anterior, este resultado se puede demostrar como consecuencia del Teorema de Euler y será muy importante a la hora de encontrar los restos potenciales y ver cuándo se reproduce el ciclo.

Ejemplo: Resolver \(7X\equiv 22 {\pmod {31}}\)

Necesitamos encontrar el inverso de 7 en \(\mathbb{Z}_{31}\), ya para ello podemos utilizar el teorema de Fermat: \[7\cdot 7^{29}\equiv 1{\pmod {31}}\] Ahora simplificamos como creamos conveniente; por ejemplo, 29=5*5+4, luego \[7^{29}\equiv (7^5)^57^4\equiv 5^5\cdot 14\equiv 25\cdot 14\equiv 9{\pmod {31}}\]

Solo nos falta aplicarlo \[7X\equiv 22 {\pmod {31}}\to X\equiv 9\cdot 22\equiv 12{\pmod {31}}\]


Recordemos que si \(n\in\mathbb{Z}\) es \({\displaystyle n=p_{1}^{k_{1}}\cdots p_{r}^{k_{r}}}\), entonces \[\varphi (n)=n\prod_{i=1}^r\left(1-\frac{1}{p_i}\right)\]

Ejemplo: Utilizar la fórmula anterior para construir un algoritmo que calcule \(\varphi(87)\)

(%i1) fiEuler(n):=block([result,d,p],
   result:n,
   p:n,
   d:2,
   while d < sqrt(p) do (
       if mod(p,d) =0 then (
           result:result·(d−1)/d,
           while mod(p,d)=0 do (
               p:p/d
           )
       ),
       d:d+1
   ),
   if p>1 then result:result·((p−1)/p),
   return(result)
)$

(%i2) fiEuler(87);

\[56\]


Ejercicio: Resolver la ecuación de congruencias \(3X\equiv 16 \pmod{22}\).

(%i1) mcd(a,b):=block([r,i],
   r:[mod(a,b)],
   r:append(r,mod(b,r)),
   id:2,
   for i:2 while r[i]>0 do (
       r:append(r,[mod(r[i−1],r[i])])
   ),
   r[length(r)−1]
)$

(%i3) fiEuler(n):=block([f,i,m],
  f:1,
  for i:2 thru n−1 do (
       if(mcd(i,n)=1) then f:f+1
  ),
  f
)$
fi:fiEuler(22);

\[\operatorname{ }10\]

Sabemos que \(3^{10-1}\pmod{22}\) es el inverso de 3, luego

(%i5) r:mod(3^2,22)$
makelist(r:mod(3·r,22),i,3,9);

\[\operatorname{ }\left[ 5\operatorname{,}15\operatorname{,}1\operatorname{,}3\operatorname{,}9\operatorname{,}5\operatorname{,}15\right] \]

El inverso que buscamos es 15. El resultado será

(%i6) mod(15·16,22);

\[\operatorname{ }20\]

Verifiquémoslo

(%i7) mod(3·20,22);

\[\operatorname{ }16\]


¿Qué ocurre si \(\mathbf{mcd}(a,n)=d\) y \(d|b\)? En tal caso la solución que buscamos dependerá de la solución de

\[\frac{a}{d}X_0 \equiv \frac{b}{d} \left(\mathbf{mod}\ \frac{n}{d}\right)\]

En tal caso, las soluciones será varias y vendrás dadas por:

\[X\equiv \left[X_0+\frac{n}{d}k\right]\pmod{n}, \]

donde \(k\in \{0,1,2,\ldots,d-1\}\).

Ejercicio: Resolver la ecuación de congruencias \(4X\equiv 22 \pmod{46}\).

Para resolver nuestro problemas seguimos los siguientes pasos:

  • Determinamos: \(\mathbf{mcd}(a,n)=d\)
  • Si \(d|22\)
    • Resolvemos: \(\frac{4}{d}X_0\equiv \frac{22}{d} \left(\mathbf{mod}{\frac{46}{d}}\right)\)
  • en caso contrario
    • No hay solución

Ejercicio: Sea \(0<X<161\), la mayor de las soluciones de \(28X\equiv 35 {\pmod {161}}\). ¿Cuánto suman sus dígitos?

Siguiendo el procedimiento, primero vemos que \(\mathbf{mcd}(28,161)=7\), y como 7|35, la ecuación tiene solución y esta depende de \[4X_0\equiv 5 {\pmod {23}}.\] Resolvamos esta ecuación. Como 23 es primo, resulta \(\varphi(23)=(23-1)=22\), luego necesitamos \[4^{21}\equiv Y {\pmod {23}}.\]

Calculemos los restos potenciales:
\[\begin{align*}
4^0 &\equiv 1\pmod{23} \\
4^1 &\equiv 4\pmod{23} \\
4^2 &\equiv 16\pmod{23} \\
4^3 &\equiv 18\pmod{23} \\
4^5 &\equiv 12\pmod{23} \\
4^{10} &\equiv 6\pmod{23} \\
4^{20} &\equiv 13\pmod{23} \\
4^{21} &\equiv 6\pmod{23}
\end{align*}\]
Ahora solo falta aplicarlo:\[4X_0\equiv 5 {\pmod {23}}\Rightarrow X_0\equiv 6\cdot 5 {\pmod {23}}\Rightarrow X_0\equiv 7 {\pmod {23}}.\]
La solución general será: \[X\equiv \left[7+23k\right]\pmod{161},\ k\in\{0,\ldots,6\}.\]
La soluciones menores de 161 serán:\[7,30,53,76,99,122,145.\] La mayor de las soluciones es 145, y la respuesta al ejercicio 1+4+5=10.


Criterio de divisibilidad

La utilización de los restos potenciales nos sirve para establecer un criterio de divisibilidad que permite saber las propiedades de un número para que sea divisible por otro:

Sea dados \(m,n\in\mathbb{Z}^+\) para todo entero \[a=a_kn^k+a_{k-1}n^{k-1}+…+a_1n+a_0\] si \(n^i\equiv r_i{\pmod {m}}\) entonces \[a\equiv a_kr_k+…+a_0r_0{\pmod {m}}\]

Esto nos permite justificar, por ejemplo, que un número es divisible por 3 si la suma de sus dígitos es divisible por 3.

Ejemplo: Crear una criterio de divisibilidad para el 4.

Primero calculamos los restos potenciales de 10 módulo 4:
\[\begin{align*} 10^{0}&\equiv 1 {\pmod {4}} \\ 10^{1}&\equiv 2 {\pmod {4}}\\ 10^{2}&\equiv 0 {\pmod {4}}\end{align*}\] Luego si \(N=\sum_{i=0}^kd_i10^i\) resultará \[N\equiv (2d_1+d_0) {\pmod {4}}.\] Es decir, un número es divisible por 4 si lo es la suma de su última cifra más el doble de la penúltima.

Ejemplo: ¿Cuál es el resto de la división de 10655871899 entre 6?

Primero calculamos los restos potenciales

(%i1) makelist(mod(10^i,6),i,0,5);

\[\left[ 1,4,4,4,4,4\right] \]

Como vemos, a partir del segundo dígito se repiten. Luego \[4\left ( \sum_{i=1}^k d_i \right )+d_0\equiv n(\textbf{mod}\,6)\Leftrightarrow 4\left ( \sum_{i=0}^k d_i \right )-3d_0\equiv n(\textbf{mod}\,6)\]

(%i3) d:[1,0,6,5,5,8,7,1,8,9,9]$
4·sum(d[i],i,1,length(d))−3·d[length(d)];

\[209\]

Reduzcamos este número

(%i4) mod(%,6);

\[5\]


Ejemplo: Crear una criterio de divisibilidad para el 7 y determinar \[12345678910987654321\equiv X {\pmod {7}}\]

Para este ejercicio crearemos dos funciones previamente: restos(\(n,m\)), nos proporciona los restos potenciales de \(n\) módulo \(m\). digitos(\(n\)), nos devuelve un vector con los dígitos del número \(n\).

Ahora, veamos los restos de 10 módulo 7:

(%i3) r10:restos(10,7);

(r10)[[1,3,2,6,4,5],[1,1],[6]]

Luego, tenemos un ciclo de longitud 6 desde 0. Apliquemos el teorema:

(%i7) d:digitos(12345678910987654321)$
r:0$
for i:1 thru length(d) do(
   a:d[i],
   b:r10[1][mod(i–1,length(r10[1]))+1],
   r:r+a*b
)$
print(«Resultado:», mod(r,7))$

Resultado:5


Ejemplo: Cuántos números, \(0\leq N<100\), verifican \[123456789N987654321\equiv 5 {\pmod {7}}\]

Solución: 15

Ejercicio: Sea \(v\) la solución de Bezout de \(\mathbf{mcd}(5432,872)\). ¿Cuál es el valor de \([3,-5].v/\|v\|\) ?

  • 8.45
  • 7.12
  • 5.41

C.)

Calculemos los restos y los cocientes que utilizaremos posteriormente.

(%i9) n:5432$
m:872$
q:[floor(n/m)]$
r:[mod(n,m)]$
q:append(q,[floor(m/r[1])])$
r:append(r,[mod(m,r[1])])$
for i:2 while r[i]>0 do(
   q:append(q,[floor(r[i−1]/r[i])]),
   r:append(r,[mod(r[i−1],r[i])])
)$
q;
r;

\[\left[ 6, 4, 2, 1, 3, 2\right] \]

\[\left[ 200, 72, 56, 16, 8, 0\right] \]

Declaremos la función que nos permita aplicar el algoritmo extendido de Euclides para encontrar la solución que buscamos.

(%i10) qm(a):=matrix([0,1],[1,−a])$

Apliquemos el algoritmo extendido de Euclides multiplicando las matrices generadas con los cocientes.

(%i12) M:ident(2)$
ml:makelist(M:M.qm(q[i]),i,1,length(q));

\[\left[ \begin{bmatrix}0 & 1\\1 & -6\end{bmatrix}, \begin{bmatrix}1 & -4\\-6 & 25\end{bmatrix}, \begin{bmatrix}-4 & 9\\25 & -56\end{bmatrix}, \begin{bmatrix}9 & -13\\-56 & 81\end{bmatrix}, \begin{bmatrix}-13 & 48\\81 & -299\end{bmatrix}, \begin{bmatrix}48 & -109\\-299 & 679\end{bmatrix}\right] \]

Tenemos la solución, la primera columna de la última matriz. Resolvamos el ejercicio.

(%i14) v:transpose(col(ml[length(q)],1))[1]$
[3,−5].v/sqrt(v.v),numer;

\[5.412307287160986\]

MAD: Números primos y congruencias

Posted on 23 de febrero de 2026

En la clase de hoy trataremos los números primos. Llamaremos número primo a todo número entero \(p\in\mathbb{Z}\), \(p>1\), que no tiene divisores más que el 1 y el mismo. El siguiente resultado…

MAD: El mcd con maxima

Posted on 18 de febrero de 2026

El pasado día vimos que el algoritmo de Euclides se fundamenta en el teorema: Teorema: Si \(a\) y \(b\) son números enteros, \[\mathbf{mcd}(a,b)=\mathbf{mcd}(b,r),\] donde \(r\) es el resto del algoritmo de la…

MAD: Máximo común divisor y Ecuación diofántica de 2 variables

Posted on 16 de febrero de 2026

Máximo común divisor Consideremos dos números enteros Si \(a\) y \(b\) distintos de cero, decimos que \(c\) es un divisor común de \(a\) y \(b\) si \(c|a\) y \(c|b\). Cuando existen, únicamente,…

El algoritmo de la división con maxima

Posted on 11 de febrero de 2026

1. El algoritmo de la división Dados dos números enteros \(a\) y \(b\), con \(a\) no nulo, la división euclídea asocia un cociente \(q\in\mathbb{Z}\) y un resto \(r\in\mathbb{Z}\), únicos, que verifican: \[b=q\,a+r,\quad…

MAD: Divisibilidad y Algoritmo de la división

Posted on 9 de febrero de 2026

Divisibilidad El concepto de divisibilidad es uno de los más importantes que veremos en Teoría de números. Con él pretendemos dar una sustitución de la división que no siempre es posible en…

MAD: Presentación

Posted on 2 de febrero de 2026

En la presentación del día de hoy hemos visto Presentación Objetivos de la asignatura Metodología y Evaluación Bibliografía Objetivos, Metodología y Evaluación El contenido de la asignatura está centrado en tres bloques:…

ALG: Ejercicios de repaso

Posted on 17 de diciembre de 2025

Ejercicio: Sea la matriz \(A=\begin{bmatrix}4 & 2 & 0 & 0\\ 3 & 3 & 0 & 0\\ 0 & 0 & 2 & 5\\ 0 & 0 & 0 & 2\end{bmatrix}\)…

ALG: Diagonalización de una matriz

Posted on 15 de diciembre de 2025

Dado \(\mathbf {A} \in M_{n\times n}(\mathbb {K} )\), una matriz cuadrada con valores sobre un cuerpo \(\mathbb {K}\), decimos que \(\mathbf{A}\) es diagonalizable si, y sólo si, \(\mathbf{A}\) se puede descomponer de…

ALG: Autovectores y autovalores con maxima

Posted on 12 de diciembre de 2025

El pasado día vimos que para calcular los valores propios o autovalores necesitamos el polinomio característico. Ejercicio: Determinar los autovalores de la matriz \[\begin{bmatrix}1 & 1 & 0\\ 2 & 0 &…

Paginación de entradas

1 2 … 8 Siguientes

Novela

La Loba, la lucha fraticida por un reino

La Loba, la lucha fratricida por un reino.

Urraca, señora de Zamora, acusada de instigar la muerte de su hermano, el rey Sancho de Castilla, deberá defenderse de la acusación, al tiempo que luchará por mantener la cohesión entre los hermanos y los reinos cristianos: una lobera de fieros lobeznos.

👉 En amazon

Entradas recientes

  • MAD: Congruencias con maxima
  • MAD: Números primos y congruencias
  • MAD: El mcd con maxima
  • MAD: Máximo común divisor y Ecuación diofántica de 2 variables
  • El algoritmo de la división con maxima
febrero 2026
L M X J V S D
 1
2345678
9101112131415
16171819202122
232425262728  
« Dic    

Categorías

  • Álgebra Lineal
  • general
  • Matemática Discreta
  • MathBio

Etiquetas

Prácticas MAD Prácticas MathBio Prácticas Álgebra

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
©2026 Diario de clases | Diseño: Tema de WordPress Newspaperly