Acciones

Programa que encuentra todas las ternas pitagóricas que sumen un número escogido, en particular resuelve el Problema 9 del Proyecto de Euler

De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)

Revisión del 13:41 4 may 2011 de Rafgaljim (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Este programa encuentra todas las ternas pitagóricas que sumen un número escogido, en particular resuelve el Problema 9 del Proyecto de Euler. Si queremos buscar las ternas pitagoricas (a,b,c) tales que sumen 1000, bastará con ejecutar la función pitag(1000), si queremos que sumen 1500 escribimos pitag(1500), etc.


ENUNCIADO

Hallar todas las ternas pitagóricas (a,b,c) tales que al sumar a+b+c obtengamos el número que queramos.


SOLUCIÓN


pitag(s):=block([a,b,c],
for a from 3 thru ((s-3)/3) do
(for b from (a+1) thru ((s-1-a)/2) do
(c:s-a-b,
 if (c^2)=(a^2+b^2) then ((print("La terna pitagórica a=",a,", b=",b,", c=",c,"cumple que a+b+c=",s))) )));


EJEMPLOS


Si, por ejemplo, quiero que busque aquellas ternas pitagóricas cuyos miembros sumen 1500:


(%i4)pitag(1500);

La terna pitagórica a=250, b=600, c=650 cumple que a+b+c=1500
La terna pitagórica a=375, b=500, c=625 cumple que a+b+c=1500
(%o4) done


En particular, si queremos resolver el problema 9 del proyecto de Euler:

(%i5)pitag(1000);

La terna pitagórica a=200, b=375, c=425 cumple que a+b+c=1000
(%o5) done