75 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Greatest Common Divisor Euclidean | |||
|  | localeTitle: El mayor divisor común euclidiano | |||
|  | --- | |||
|  | ## El mayor divisor común euclidiano
 | |||
|  | 
 | |||
|  | Para este tema, debe conocer primero el Divisor común más grande (GCD) y la operación MOD. | |||
|  | 
 | |||
|  | #### El divisor común más grande (GCD)
 | |||
|  | 
 | |||
|  | El GCD de dos o más enteros es el entero más grande que divide cada uno de los enteros de tal manera que su resto es cero. | |||
|  | 
 | |||
|  | Ejemplo-   | |||
|  | GCD de 20, 30 = 10 _(10 es el número más grande que divide 20 y 30 con el resto como 0)_   | |||
|  | GCD de 42, 120, 285 = 3 _(3 es el número más grande que divide a 42, 120 y 285 con el resto como 0)_ | |||
|  | 
 | |||
|  | #### Operación "mod"
 | |||
|  | 
 | |||
|  | La operación de modificación le da el resto cuando se dividen dos enteros positivos. Lo escribimos como sigue:   | |||
|  | `A mod B = R` | |||
|  | 
 | |||
|  | Esto significa que dividir A por B le da el resto R, esto es diferente de la operación de división que le da el cociente. | |||
|  | 
 | |||
|  | Ejemplo-   | |||
|  | 7 mod 2 = 1 _(Dividir 7 por 2 da el resto 1)_   | |||
|  | 42 mod 7 = 0 _(Dividir 42 por 7 da el resto 0)_ | |||
|  | 
 | |||
|  | Con los dos conceptos anteriores entendidos, comprenderá fácilmente el Algoritmo Euclidiano. | |||
|  | 
 | |||
|  | ### Algoritmo euclidiano para el divisor común más grande (GCD)
 | |||
|  | 
 | |||
|  | El algoritmo euclidiano encuentra el GCD de 2 números. | |||
|  | 
 | |||
|  | Comprenderás mejor este algoritmo viéndolo en acción. Suponiendo que desea calcular el GCD de 1220 y 516, apliquemos el algoritmo euclídeo - | |||
|  | 
 | |||
|  | Suponiendo que desea calcular el GCD de 1220 y 516, apliquemos el algoritmo euclídeo -  | |||
|  | 
 | |||
|  | Pseudo Código del algoritmo   | |||
|  | Paso 1: **Sean `a, b` los dos números**   | |||
|  | Paso 2: **`a mod b = R`**   | |||
|  | Paso 3: **Deje que `a = b` y `b = R`**   | |||
|  | Paso 4: **repita los pasos 2 y 3 hasta que `a mod b` sea mayor que 0**   | |||
|  | Paso 5: **GCD = b**   | |||
|  | Paso 6: Finalizar | |||
|  | 
 | |||
|  | Código Javascript para realizar GCD- | |||
|  | 
 | |||
|  | ```javascript | |||
|  | function gcd(a, b) {  | |||
|  |   var R;  | |||
|  |   while ((a % b) > 0)  {  | |||
|  |     R = a % b;  | |||
|  |     a = b;  | |||
|  |     b = R;  | |||
|  |   }  | |||
|  |   return b;  | |||
|  |  }  | |||
|  | ``` | |||
|  | 
 | |||
|  | Código Javascript para realizar GCD usando Recursion- | |||
|  | 
 | |||
|  | ```javascript | |||
|  | function gcd(a, b) {  | |||
|  |   if (b == 0)  | |||
|  |     return a;  | |||
|  |   else  | |||
|  |     return gcd(b, (a % b));  | |||
|  |  }  | |||
|  | ``` | |||
|  | 
 | |||
|  | También puede usar el algoritmo euclídeo para encontrar GCD de más de dos números. Como GCD es asociativo, la siguiente operación es válida: `GCD(a,b,c) == GCD(GCD(a,b), c)` | |||
|  | 
 | |||
|  | Calcule el GCD de los dos primeros números, luego encuentre el GCD del resultado y el siguiente número. Ejemplo: `GCD(203,91,77) == GCD(GCD(203,91),77) == GCD(7, 77) == 7` | |||
|  | 
 | |||
|  | Puedes encontrar GCD de `n` números de la misma manera. |