MCD-MCM ======= #. Dissenya la funció ``mcd(a, b)`` que donats dos enters positius *a* i *b*, en calculi el màxim comú divisor. Utilitzarem el mètode d'anar provant si un nombre donat divideix a la vegada *a* i *b*. Si ho provem en l'ordre *min(a,b)*, *min(a,b)-1, ..., 2, 1*, el primer que divideixi a *a* i *b*, serà el màxim comú divisor. Desa la funció al fitxer ``mcdmcm.py``. La funció ha de passar el següent doctest: .. literalinclude:: mcd-1.txt :language: python3 :lines: 2- .. note:: Pots descarregar el fitxer amb tests :download:`mcd-1.txt ` #. Dissenya la funció ``mcd_euclides_1(a, b)`` que donats dos enters positius :math:`a` i :math:`b`, en calculi el màxim comú divisor. Utilitzarem un mètode donat per Euclides que consisteix en aplicar les següents propietats del *mcd*: .. math:: mcd(a,b) = \begin{cases} mcd(a-b, b) & \text{si } b \lt a \\ a & \text{si } b = a \\ mcd(a, b-a) & \text{si } b \gt a \\ \end{cases} Per exemple, :math:`mcd(10,15) = mcd(10,5) = mcd(5,5) = 5` Desa la funció al fitxer ``mcdmcm.py``. La funció ha de passar el següent doctest: .. literalinclude:: mcd-2.txt :language: python3 :lines: 2- .. note:: Pots descarregar el fitxer amb tests :download:`mcd-2.txt ` #. Dissenya la funció ``mcd_euclides_2(a, b)`` que donats dos enters positius :math:`a` i :math:`b`, en calculi el màxim comú divisor. Utilitzarem un mètode donat per Euclides `l'algorisme d'Euclides `__ que consisteix en aplicar les següents propietats del *mcd*: .. math:: mcd(a,b) = \begin{cases} a & \text{si } b = 0 \\ mcd(b, r) & \text{si } b \gt 0 \text{, essent } r \text{ el residu de la divisió entera d'} a \text{ per } b \\ \end{cases} Per exemple, :math:`mcd(567,28)=mcd(28,7)=mcd(7,0)=7` Desa la funció al fitxer ``mcdmcm.py``. La funció ha de passar el següent doctest: .. literalinclude:: mcd-3.txt :language: python3 :lines: 2- .. note:: Pots descarregar el fitxer amb tests :download:`mcd-3.txt ` #. Dissenya la funció ``mcm(a, b)`` que donats dos enters positius, en calculi el `mínim comú múltiple `__. Utilitza la funció de l'apartat 1. Desa la funció al fitxer ``mcdmcm.py``. La funció ha de passar el següent doctest: .. literalinclude:: mcm.txt :language: python3 :lines: 2- .. note:: Pots descarregar el fitxer amb tests :download:`mcm.txt ` .. rubric:: Solució Disposes d'una solució al fitxer :download:`mcdmcm.py `.