Cap´ıtulo 2 Divisibilidad en Z - IMERL
Cap´ıtulo 2 Divisibilidad en Z - IMERL
Cap´ıtulo 2 Divisibilidad en Z - IMERL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
30 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Tras las consideraciones anteriores, podemos escribir el algoritmo de Euclides como<br />
sigue, donde rem(a, b) repres<strong>en</strong>ta el resto de dividir a <strong>en</strong>tre b:<br />
Entrada : a, b ∈ Z<br />
mi<strong>en</strong>tras b = 0, hacer<br />
t ←− |a|<br />
a ←− |b|<br />
b ←− rem(t, a)<br />
salida : a<br />
Pseudo–código del algoritmo de Euclides.<br />
Naturalm<strong>en</strong>te, el algoritmo anterior puede ext<strong>en</strong>derse al cálculo del máximo común<br />
divisor de más de dos <strong>en</strong>teros. Supongamos dados t <strong>en</strong>teros positivos a1, . . . , at y sea<br />
R0 = (a1, . . . , at). Supongamos que i es el índice de la coord<strong>en</strong>ada más pequeña de<br />
R0. En este caso es fácil ver que mcd(a1, . . . , at) es igual a<br />
mcd(rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))<br />
Esta idea conduce al sigui<strong>en</strong>te algoritmo.<br />
<strong>en</strong>trada : (a1, a2, . . . , at) ∈ Z t<br />
Inicializar A := (|a1|, |a2|, . . . , |at|)<br />
mi<strong>en</strong>tras A cont<strong>en</strong>ga, al m<strong>en</strong>os, dos coord<strong>en</strong>adas no nulas hacer<br />
Calcular el índice i del m<strong>en</strong>or <strong>en</strong>tero no nulo de A<br />
A ←− (rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))<br />
salida : ai<br />
Pseudo–código del algoritmo de Euclides para t <strong>en</strong>teros.<br />
Ejemplo 2.10 Calcular el mcd de 120, 146 y 180. En este caso, se ti<strong>en</strong>e:<br />
mcd(120, 146, 180) = mcd(120, 26, 60) = mcd(16, 26, 8) = mcd(0, 2, 8) =<br />
= mcd(0, 2, 0) = 2.