Estoy resolviendo los problemas de mi código que escribí para generar todos los triángulos heronianos (triángulo con lados enteros y área entera). Estoy usando el siguiente algoritmo
$$a=n(m^{2}+k^{2})$$ $$b=m(n^{2}+k^{2})$$ $$c=(m+n)(mn-k^{2})$$ $$\text{Semiperimeter}=mn(m+n)$$ $$\text{Area}=mnk(m+n)(mn-k^{2})$$
para los enteros $m$ , $n$ y $k$ con sujeción a las limitaciones:
$$\gcd{(m,n,k)}=1$$ $$mn > k^2 \ge m^2n/(2m+n)$$ $$m \ge n \ge 1$$
que encontré aquí http://en.wikipedia.org/wiki/Integer_triangle#Heronian_triangles
La parte impar es que este algoritmo no parece generar nunca 7, 24, 25 que es un Triángulo de Héroe (un triángulo rectángulo, de hecho) con área entera 84.
Originalmente había asumido que era un fallo en mi código, pero luego me di cuenta de que no puedo encontrar ningún valor de $m$ , $n$ o $k$ dentro de las restricciones o incluso ignorando las restricciones que generan este triángulo.
No sé cuál es entre cuál de los 7, 24 o 25 es igual al $a$ , $b$ o $c$ pero he intentado resolver manualmente para $m$ y $n$ utilizando wolframalpha. Desde $a$ y $b$ son simétricos (ya que $m$ y $n$ son simétricos cuando se ignoran las restricciones), realmente sólo tengo 3 conjuntos de ecuaciones lineales para comprobar:
$$7=n(m^{2}+k^{2})$$ $$24=m(n^{2}+k^{2})$$ $$25=(m+n)(mn-k^{2})$$
Wolframalpha - Ecuaciones lineales 1
$$24=n(m^{2}+k^{2})$$ $$25=m(n^{2}+k^{2})$$ $$7=(m+n)(mn-k^{2})$$
Wolframalpha - Ecuaciones lineales 2
$$25=n(m^{2}+k^{2})$$ $$7=m(n^{2}+k^{2})$$ $$24=(m+n)(mn-k^{2})$$
Wolframalpha - Ecuaciones lineales 3
Ninguna de ellas tiene soluciones enteras.
¿Está mal mi comprensión de los Triángulos de los Héroes? ¿Está mal el algoritmo? ¿Mi implementación es incorrecta?