Lenguaje de programación C

Máximo común divisor en C – Algoritmo de Euclides

Resumen: aplicar el algoritmo de Euclides en el lenguaje C para obtener el máximo común divisor (MCD) de dos números; implementando dos funciones:

  • Una utiliza el ciclo while
  • Otra, que utiliza la recursión o recursividad

Máximo común divisor en C

Si no sabes lo que es este término, mira la Wikipedia. El algoritmo es realmente sencillo y puede ser implementado en pocas líneas de código.

Con ciclo while

Con este ciclo simplemente operamos mientras que b sea distinto de 0.

Dentro del ciclo, guardamos el valor de b en una variable temporal, después asignamos a b el valor de a % b que es sacar el residuo de dividir de manera entera a entre b.

See the gist on github.

Finalmente, a tomará el valor de temporal, que era el que inicialmente tenía b. En algún momento b es 0 y se termina el ciclo, que es en donde regresamos a, el cuál tendrá el último valor de b antes de haber obtenido el residuo.

Usando recursión

Como la definición dice que mcd(a,b) es lo mismo que mcd(b, a % b) podemos aplicar recursión o recursividad para llamar a la misma función dentro de sí misma, quedando así:

See the gist on github.

La condición de salida es que b sea 0, lo cual pasará en algún momento pues en algún momento el residuo de a / b será 0.

Poniendo todo junto

Máximo común divisor en C con algoritmo de Euclides – Ejecución del programa

El código completo junto con una demostración de su uso queda así:

See the gist on github.

Como se puede ver, ambos métodos funcionan para obtener el máximo común divisor en C, tanto el recursivo como el iterativo.

Notas sobre el máximo común divisor en C

Recuerda que podrías almacenar el resultado en una variable. Por ejemplo:

int mcd = maximo_comun_divisor(50, 120);

También se pueden enviar variables:

int a = 50, b = 120; int mcd = maximo_comun_divisor(a, b);

Por otro lado, tanto a y b pueden ser proporcionadas por el usuario, y leídas por el programa usando scanf.

Conclusión

Si quieres probar el ejercicio en línea haz click aquí.

Te animo a leer más sobre C en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 horas hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

18 horas hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

19 horas hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

2 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.