El reto
Escribir un programa o función que toma dos números enteros de entrada, i
y j
, y da salida a su máximo común divisor; calculado utilizando el algoritmo euclidiano (ver más abajo).
Entrada
De entrada puede ser tomado como una representación de cadena delimitada por espacios de i
y j
o como dos enteros separados. Puede suponer que los enteros serán menores o iguales a 10,000. También puede suponer que los enteros de entrada no serán primos entre sí.
Desglose Euclidiano
El número mayor entre i
y j
se divide por el menor tantas veces como sea posible. Luego, se agrega el resto. Este proceso se repite con el resto y el número anterior, hasta que el resto se convierta 0
.
Por ejemplo, si la entrada fue 1599 650
:
1599 = (650 * 2) + 299
650 = (299 * 2) + 52
299 = (52 * 5) + 39
52 = (39 * 1) + 13
39 = (13 * 3) + 0
El número final 13
, es el máximo común divisor de los dos enteros de entrada. Se puede visualizar así:
Salida
Su salida debe ser el desglose en el formulario anterior, seguido de una nueva línea y el MCD. Se puede emitir a través de cualquier medio.
Ejemplos
Entradas
18 27
50 20
447 501
9894 2628
Salidas
27 = (18 * 1) + 9
18 = (9 * 2) + 0
9
50 = (20 * 2) + 10
20 = (10 * 2) + 0
10
501 = (447 * 1) + 54
447 = (54 * 8) + 15
54 = (15 * 3) + 9
15 = (9 * 1) + 6
9 = (6 * 1) + 3
6 = (3 * 2) + 0
3
9894 = (2628 * 3) + 2010
2628 = (2010 * 1) + 618
2010 = (618 * 3) + 156
618 = (156 * 3) + 150
156 = (150 * 1) + 6
150 = (6 * 25) + 0
6
Nota: Las salidas no tienen que estar espaciadas como están arriba. El espacio es solo para mayor claridad. Se requieren paréntesis.
Prima
Si su producción está espaciada como se indica arriba, puede agregar un bono de -10% a su puntaje.