Algoritmo de Euclides

Iniciado por porni, Enero 31, 2018, 12:25:59 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hace mucho tiempo , estaba sentado Euclides abajo de un árbol, cuando de repente le cayó una manzana en la cabeza... No, esa es la historia de otro.
Euclides fue un matemático y geómetra griego. Gracias al "Algoritmo De Euclides" podemos calcular el máximo común divisor de dos números de manera exacta y sin perder mucho tiempo( algo realmente útil en nuestra vida cotidiana...).

El algoritmo es sencillo, por medio de reiteradas divisiones enteras damos con el numero que buscamos( para más información de cómo se realiza : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)


Si si, ya se que no es lo más divertido para hacer un tema, pero estoy estudiando para la facultad y justo salió esto. Lo que quiero mostrar es el uso de funciones que retornan valores, no se enojen con Euclides xd


CÓDIGO COMPLETO:

Código: php

print "Algoritmo De Euclides"
print "Maximo Comun Divisor (MCD)"
print "--------------------------"

def main():
mayor = input("Numero mayor >> ")
menor = input("Numero menor >> ")

resto,anterior = restoDe(mayor,menor)

while resto != 0:
resto, anterior = restoDe(anterior,resto)

print "El m.c.d("+str(mayor)+","+str(menor)+") = "+str(anterior)


def restoDe(dividendo,divisor):

resto = dividendo%divisor
anterior = divisor

return resto,anterior

main()




CÓDIGO EXPLICADO:


Código: php

def main():
mayor = input("Numero mayor >> ")
menor = input("Numero menor >> ")

resto,anterior = restoDe(mayor,menor)

La primer parte es normal, ingresamos dos valores ( el primero es el mayor, y el segundo el menor) y los mandamos a la función restoDe/2, pero acá está lo lindo: estamos guardando los valores de retorno en una tupla ( no necesariamente tiene que ser puesta con paréntesis), porque son dos los valores que devuelve la función restoDe/2

Código: php

def restoDe(dividendo,divisor):

resto = dividendo%divisor
anterior = divisor

[b]return[/b] resto,anterior


¿Ves el return al final de la función? Bueno, con eso devolvemos un valor (o los valores que queramos) cuando llamamos a la función. Muy distinto a poner un print, ya que con eso imprimimos un mensaje en la pantalla pero no lo podemos seguir usando.Cuando usamos return no vamos a ver el resultado (a menos que lo llamemos con un print), pero si lo podemos pasar a otra función