Formulas for generating Pythagorean triples

Besides Euclid's formula, many other formulas for generating Pythagorean triples have been developed.

Euclid's, Pythagoras', and Plato's formulas

Euclid's, Pythagoras' and Plato's formulas for calculating triples have been described here:

Main article: Pythagorean triple

The methods below appear in various sources, often without attribution as to their origin.

Generating triples when one side is known

The following method is a direct algebraic manipulation of the Euclid equations.

Start with any even integer $b$, and use the relation $b = 2mn$ from the Euclid formula. Identify all factor-pairs (m,n) of $b$ and use the Euclid equations to calculate the remaining sides of the triple.

Examples: Let $b=24$ (e.g. the known side is even)

$24 = 2mn$ so that $12 = mn$ . The factor pairs (m,n) of 12 are (12,1), (6,2) and (4,3). The three possible triples are therefore:

$a = (m^2-n^2) \,,\ b =2mn \,,\ c = (m^2 + n^2)$
$a=12^2-1^2 =143 \,,\ b = 24 \,,\ c = (12^2 + 1^2)=145$
$a= 6^2-2^2 =32 \,,\ b = 24 \,,\ c = (6^2 + 2^2)=40$
$a = 4^2-3^2 =7 \,,\ b = 24 \,,\ c = (4^2 + 3^2)=25$

Let $b =35$ (e.g. the known side is odd)

The two unknown sides could also be calculated by making use of the relation $a = (m^2-n^2)$ . This would be a factoring exercise in finding the difference of two squares, but a simpler approach is to multiply the known side by two and continue as before:

$70 = 2mn$ so that $35 = mn.$

The factor pairs (m,n) of 35 are (35,1), (7,5).

The two triples are therefore (note that is necessary to remove the factor of 2 which was introduced):

$a=(35^2-1^2)/2=612 \,,\ b = 70/2=35 \,,\ c = (35^2 + 1^2)/2=613$
$a=(7^2-5^2)/2=12 \,,\ b = 70/2=35 \,,\ c = (7^2 + 5^2)/2=37$

Fibonacci's method

Leonardo of Pisa (c. 1170 – c. 1250) described this method[1][2] for generating primitive triples using the sequence of consecutive odd integers $1,3,5,7,9,11,\ldots$, and the fact that the sum of the first $n$ terms of this sequence is $n^2$. If $k$ is the $n$-th member of this sequence then $n=(k+1)/2$.

Choose any odd square number $k$ from this sequence ($k=a^2$ ) and let this square be the $n$-th term of the sequence. Also, let $b^2$ be the sum of the previous $n-1$ terms, and let $c^2$ be the sum of all $n$ terms . Then we have established that $a^2+b^2=c^2$ and we have generated the primitive triple [ a, b, c]. This method produces an infinite number of primitive triples, but not all of them.

EXAMPLE: Choose $k=9=3^2=a^2$ . This odd square number is the fifth term of the sequence, because $5=n=(a^2+1)/2$. The sum of the previous 4 terms is $b^2 = 4^2$ and the sum of all $n=5$ terms is $c^2 = 5^2$ giving us $a^2+b^2=c^2$ and the primitive triple [ a, b, c] = [ 3, 4, 5].

Progressions of whole and fractional numbers

The German monk and mathematician Michael Stifel published the following method in 1544.[3][4]

Consider the progression of whole and fractional numbers: $1\tfrac{1}{3},\text{ }2\tfrac{2}{5},\text{ }3\tfrac{3}{7},\text{ }4\tfrac{4}{9},\ldots$

The properties of this progression are: (a) the whole numbers are those of the common series and have unity as their common difference; (b) the numerators of the fractions, annexed to the whole numbers, are also the natural numbers; (c) the denominators of the fractions are the odd numbers, $3,\text{ }5,\text{ }7,\text{ }9,$ etc.

To calculate a Pythagorean triple select any term of this progression and reduce it to an improper fraction. For example, take the term $3\tfrac{3}{7}$. The improper fraction is $\tfrac{24}{7}$. The numbers 7 and 24 are the sides, a and b, of a right triangle, and the hypotenuse is one greater than the largest side. For example:

$1\tfrac{1}{3}\text{ }\xrightarrow{\text{yields}}\text{ }[3,4,5],\text{ 2}\tfrac{2}{5}\text{ }\xrightarrow{\text{yields}}\text{ }[5,12,13],\text{ 3}\tfrac{3}{7}\text{ }\xrightarrow{\text{yields}}\text{ }[7,24,25],\text{ 4}\tfrac{4}{9}\text{ }\xrightarrow{\text{yields}}\text{ }[9,40,41],\text{ }\ldots$

Jacques Ozanam[5] republished Stifel’s sequence in 1694 and added the similar sequence $1\tfrac{7}{8},\text{ }2\tfrac{11}{12},\text{ }3 \tfrac{15}{16},\text{ }4\tfrac{19}{20},\ldots$ with terms derived from $n+\tfrac{4n+3}{4n+4}$. As before, to produce a triple from this sequence, select any term and reduce it to an improper fraction. The numerator and denominator are the sides, a and b, of a right triangle. In this case, the hypotenuse of the triple(s) produced is 2 greater than the larger side. For example:

$1\tfrac{7}{8}\xrightarrow{\text{yields}}[15,8,17],2\tfrac{11}{12}\xrightarrow{\text{yields}}[35,12,37],3\tfrac{15}{16}\xrightarrow{\text{yields}}[63,16,65],4\tfrac{19}{20}\xrightarrow{\text{yields}}[99,20,101],\ldots$

Together, the Stifel and Ozanam sequences produce all primitive triples of the Plato and Pythagoras families respectively. The Fermat family must be found by other means.

$Plato:c-b=1,\quad \quad Pythagoras:c-a=2,\quad \quad Fermat:\left| a-b \right|=1$

Dickson's method

Leonard Eugene Dickson (1920)[6] attributes to himself the following method for generating Pythagorean triples. To find integer solutions to $x^2+y^2=z^2$, find positive integers r, s, and t such that $r^2=2st$ is a square.

Then:

$x = r + s \,,\,y = r + t \,,\, z = r + s + t.$

From this we see that $r$ is any even integer and that s and t are factors of $\tfrac{r^2}{2}$.  All Pythagorean triples may be found by this method.  When s and t are coprime the triple will be primitive. A simple proof of Dickson's method has been presented by Josef Rukavicka (2013).[7]

Example: Choose r = 6. Then $\tfrac{r^2}{2} = 18$. The three factor-pairs of 18 are: (1, 18), (2, 9), and (3, 6). All three factor pairs will produce triples using the above equations.

s = 1, t = 18 produces the triple [7, 24, 25] because x = 6 + 1 = 7,  y = 6 + 18 = 24,  z = 6 + 1 + 18 = 25.
s = 2, t =   9 produces the triple [8, 15, 17] because x = 6 + 2 = 8,  y = 6 +  9 = 15,  z = 6 + 2 + 9 = 17.
s = 3, t =   6 produces the triple [9, 12, 15] because x = 6 + 3 = 9,  y = 6 +  6 = 12,  z = 6 + 3 + 6 = 15. (Since s and t are not coprime, this triple is not primitive.)

Generalized Fibonacci sequence

I.

For Fibonacci numbers starting with F1=0 and F2=1 and with each succeeding Fibonacci number being the sum of the preceding two, one can generate a sequence of Pythagorean triples starting from (a3, b3, c3) = (4, 3, 5) via

$(a_n, b_n, c_n) = (a_{n-1}+b_{n-1}+c_{n-1}, \, F_{2n-1}-b_{n-1}, \, F_{2n})$

II.

A Pythagorean triple can be generated using any two positive integers by the following procedures using generalized Fibonacci sequences.

For initial positive integers hn andhn+1, if hn+hn+1=hn+2 and hn+1+hn+2=hn+3, then

$(2h_{n+1} h_{n+2}, h_nh_{n+3}, 2h_{n+1}h_{n+2}+h_n ^2)$

is a Pythagorean triple.[8]

III.

The following is a matrix-based approach to generating primitive triples with generalized Fibonacci sequences.[9] Start with a 2 × 2 array and insert two coprime positive integers ( q,q' ) in the top row. Place the even integer (if any) in the left-hand column.

$\left[ {\begin{array}{*{20}c} q & {q'} \\ \bullet & \bullet \end{array}} \right]$

Now apply the following "Fibonacci rule" to get the entries in the bottom row:

$\begin{array}{*{20}c} q' + q = p \\ q + p = p' \end{array} \to \left[ {\begin{array}{*{20}c} q & q' \\ p & p' \end{array}} \right]$

Such an array may be called a "Fibonacci Box". Note that q', q, p, p' is a generalized Fibonacci sequence. Taking column, row, and diagonal products we obtain the sides of triangle [a, b, c], its area A, and its perimeter P, as well as the radii ri of its incircle and three excircles as follows:

$\begin{array}{l} a = 2qp \\ b = q'p' \\ c = pp' - qq' = qp' + q'p \\ \\ \text{radii} \to (r_1 = qq',r_2 = qp',r_3 = q'p,r_4 = pp') \\ A = qq'pp' \\ P = r_1 + r_2 + r_3 + r_4 \end{array}$

The half-angle tangents at the acute angles are q/p and q'/p'.

EXAMPLE:

Using coprime integers 9 and 2.

$\left[ {\begin{array}{*{20}c} 2 & 9 \\ \bullet & \bullet \end{array}} \right] \to \left[ {\begin{array}{*{20}c} 2 & 9 \\ 11 & 13 \end{array}} \right]$

The column, row, and diagonal products are: (columns: 22 and 117), (rows: 18 and 143), (diagonals: 26 and 99), so

$\begin{array}{l} a = 2(22)=44 \\ b =117 \\ c = (143 - 18) = (26 + 99)=125 \\ \\ \text{radii} \to (r_1 = 18,\quad r_2 = 26, \quad r_3 = 99 ,\quad r_4 = 143) \\ A = (18)(143)=2574 \\ P = (18 + 26 + 99 + 143) =286 \end{array}$

The half-angle tangents at the acute angles are 2/11 and 9/13. Note that if the chosen integers q, q' are not coprime, the same procedure leads to a non-primitive triple.

Pythagorean triples and Descartes' circle equation

This method of generating primitive Pythagorean triples also provides integer solutions to Descartes' Circle Equation,[9]

$\left( k_1 + k_2 + k_3 + k_4 \right)^2 = 2\left( k_1^2 + k_2^2 + k_3^2 + k_4^2 \right),$

where integer curvatures ki are obtained by multiplying the reciprocal of each radius by the area A. The result is k1 = pp', k2 = qp', k3 = q'p, k4 = qq'. Here, the largest circle is taken as having negative curvature with respect to the other three. The largest circle (curvature k4) may also be replaced by a smaller circle with positive curvature ( k0 = 4pp' − qq' ). EXAMPLE: Using the area and four radii obtained above for primitive triple [44, 117, 125] we obtain the following integer solutions to Descartes' Equation: k1 = 143, k2 = 99, k3 = 26, k4 = (−18), and k0 = 554.

A Ternary Tree: Generating All Primitive Pythagorean Triples

Each primitive Pythagorean triple corresponds uniquely to a Fibonacci Box. Conversely, each Fibonacci Box corresponds to a unique and primitive Pythagorean triple. In this section we shall use the Fibonacci Box in place of the primitive triple it represents. An infinite ternary tree containing all primitive Pythagorean triples/Fibonacci Boxes can be constructed by the following procedure.[10]

Consider a Fibonacci Box containing two, odd, coprime integers x and y in the right-hand column.

$\left[ {\begin{array}{*{20}{c}} \bullet & x \\ \bullet & y \end{array}} \right]$

It may be seen that these integers can also be placed as follows:

$\left[ {\begin{array}{*{20}{c}} \bullet & x \\ y & \bullet \end{array}} \right],\left[ {\begin{array}{*{20}{c}} x & y \\ \bullet & \bullet \end{array}} \right],\left[ {\begin{array}{*{20}{c}} y & x \\ \bullet & \bullet \end{array}} \right]$

resulting in three more valid Fibonacci boxes containing x and y. We may think of the first Box as the “parent” of the next three. For example, if x = 1 and y = 3 we have:

$\left[ {\begin{array}{*{20}{c}} 1 & 1 \\ 2 & 3 \end{array}} \right] \leftarrow \text{parent}$
$\left[ {\begin{array}{*{20}{c}} 2 & 1 \\ 3 & 5 \end{array}} \right],\left[ {\begin{array}{*{20}{c}} 1 & 3 \\ 4 & 5 \end{array}} \right],\left[ {\begin{array}{*{20}{c}} 3 & 1 \\ 4 & 7 \end{array}} \right] \leftarrow \text{children}$

Moreover, each "child" is itself the parent of three more children which can be obtained by the same procedure. Continuing this process at each node leads to an infinite ternary tree containing all possible Fibonacci Boxes, or equivalently, to a ternary tree containing all possible primitive triples. (The tree shown here is distinct from the classic tree described by Berggren in 1934, and has many different number-theoretic properties.) Compare: "Classic Tree".[11] See also Tree of primitive Pythagorean triples.[12]

There are several methods for defining quadratic equations for calculating each leg of a Pythagorean triple.[13] A simple method is to modify the standard Euclid equation by adding a variable x to each m and n pair. The m, n pair is treated as a constant while the value of x is varied to produce a “family” of triples based on the selected triple. An arbitrary coefficient can be placed in front of the “x” value on either m or n, which causes the resulting equation to systematically “skip” through the triples. For example, let’s use the triple [20, 21, 29] which can be calculated from the Euclid equations with a value of m = 5 and n = 2. Also, let’s arbitrarily put the coefficient of 4 in front of the “x” in the “m” term.

Let $m_1=(4x+m)$ and let $n_1=(x+n)$

Hence, substituting the values of m and n:

\begin{align} \text{Side }A & =2m_1 n_1 & & = 2(4x+5)\text{ }(x+2) & & = 8x^2+26x+20 \\ \text{Side }B & =m_1^2-n_1^2 & & = (4x+5)^2-(x+2)^2 & & = 15x^2+36x+21 \\ \text{Side }C & =m_1^2+n_1^2 & & = (4x+5)^2+(x+2)^2 & & = 17x^2+44x+29 \end{align}

Note that the original triple comprises the constant term in each of the respective quadratic equations. Below is a sample output from these equations. Note that the effect of these equations is to cause the “m” value in the Euclid equations to increment in steps of 4, while the “n” value increments by 1.


x     side a       side b      side c     m  n
0       20          21            29      5  2
1       54          72            90      9  3
2      104         153           185      13 4
3      170         264           314      17 5
4      252         405           477      21 6


Pythagorean triples by use of matrices and linear transformations

Let $[\text{ }a,\text{ }b,\text{ }c]$ be a primitive triple with $a$ odd. Then 3 new triples $[{{a}_{1}},{{b}_{1}},{{c}_{1}}], \text{ }[{{a}_{2}},{{b}_{2}},{{c}_{2}}], \text{ }[{{a}_{3}},{{b}_{3}},{{c}_{3}}]$ may be produced from $[\text{ }a,\text{ }b,\text{ }c]$ using matrix multiplication and Berggren’s[11] three matrices A, B, C. Triple $[\text{ }a,\text{ }b,\text{ }c]$ is termed the "parent" of the three new triples (the "children"). Each child is itself the parent of 3 more children, and so on. If one begins with primitive triple $[\text{ }3,\text{ }4,\text{ }5]$, all primitive triples will eventually be produced by application of these matrices. The result can be graphically represented as an infinite ternary tree with $[\text{ }a,\text{ }b,\text{ }c]$ at the root node. An equivalent result may be obtained using Berggrens's three linear transformations shown below.

$\overset{A}{\mathop{\left[ \begin{matrix} -1 & 2 & 2 \\ -2 & 1 & 2 \\ -2 & 2 & 3 \\ \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \\ \end{matrix} \right]=\left[ \begin{matrix} a_1 \\ b_1 \\ c_1 \\ \end{matrix} \right],\quad \text{ }\overset{B}{\mathop{\left[ \begin{matrix} 1 & 2 & 2 \\ 2 & 1 & 2 \\ 2 & 2 & 3 \\ \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \\ \end{matrix} \right]=\left[ \begin{matrix} a_2 \\ b_2 \\ c_2 \end{matrix} \right],\quad \text{ }\overset{C}{\mathop{\left[ \begin{matrix} 1 & -2 & 2 \\ 2 & -1 & 2 \\ 2 & -2 & 3 \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \end{matrix} \right]=\left[ \begin{matrix} a_3 \\ b_3 \\ c_3 \end{matrix} \right]$

Berggren's three linear transformations are:

\begin{align} & \begin{matrix} -a+2b+2c=a_1 \quad & -2a+b+2c=b_1 \quad & -2a+2b+3c=c_1 & \quad\to \left[ \text{ }a_1,\text{ }b_1,\text{ }c_1 \right] \\ \end{matrix} \\ & \begin{matrix} +a+2b+2c={{a}_{2}} \quad & +2a+b+2c={{b}_{2}} \quad & +2a+2b+3c={{c}_{2}} & \quad\to \left[ \text{ }{{a}_{2}},\text{ }{{b}_{2}},\text{ }{{c}_{2}} \right] \\ \end{matrix} \\ & \begin{matrix} +a-2b+2c={{a}_{3}} \quad & +2a-b+2c={{b}_{3}} \quad & +2a-2b+3c={{c}_{3}} & \quad\to \left[ \text{ }{{a}_{3}},\text{ }{{b}_{3}},\text{ }{{c}_{3}}\right] \\ \end{matrix} \\ & \end{align}

Alternatively, one may also use 3 different matrices found by Price.[10] These matrices A', B', C' and their corresponding linear transformations are shown below.

$\overset{{{A}'}}{\mathop{\left[ \begin{matrix} 2 & 1 & -1 \\ -2 & 2 & 2 \\ -2 & 1 & 3 \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \end{matrix} \right]=\left[ \begin{matrix} a_1 \\ b_1 \\ c_1 \end{matrix} \right],\quad \text{ }\overset{{{B}'}}{\mathop{\left[ \begin{matrix} 2 & 1 & 1 \\ 2 & -2 & 2 \\ 2 & -1 & 3 \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \\ \end{matrix} \right]=\left[ \begin{matrix} a_2 \\ b_2 \\ c_2 \end{matrix} \right],\quad \text{ }\overset{{{C}'}}{\mathop{\left[ \begin{matrix} 2 & -1 & 1 \\ 2 & 2 & 2 \\ 2 & 1 & 3 \\ \end{matrix} \right]}} \left[ \begin{matrix} a \\ b \\ c \\ \end{matrix} \right]=\left[ \begin{matrix} a_3 \\ b_3 \\ c_3 \end{matrix} \right]$

Price's three linear transformations are:

\begin{align} & \begin{matrix} +2a+b-c=a_1 \quad & -2a+2b+2c=b_1 \quad & -2a+b+3c=c_1 & \quad \to \left[ \text{ }a_1,\text{ }b_1,\text{ }c_1 \right] \end{matrix} \\ & \begin{matrix} +2a+b+c=a_2 \quad & +2a-2b+2c=b_2 \quad & +2a-b+3c=c_2 & \quad \to \left[ \text{ }a_2,\text{ }b_2,\text{ }c_2 \right] \end{matrix} \\ & \begin{matrix} +2a-b+c=a_3 \quad & +2a+2b+2c=b_3 \quad & +2a+b+3c=c_3 & \quad \to \left[ \text{ }a_3,\text{ }b_3,\text{ }c_3 \right] \end{matrix} \\ & \end{align}

The "3 children" produced by each of the two sets of matrices are not the same, but each set separately produces all primitive triples.

EXAMPLE: Using [ 5, 12, 13] as the parent, we get two sets of three children:

$\begin{matrix} {} & \left[ \text{5},12,13 \right] & {} \\ A & B & C \\ \left[ 45,28,53 \right] & \left[ \text{55,48,73} \right] & \left[ \text{7,24,25} \right] \end{matrix}\quad \quad \quad \quad \quad \quad \begin{matrix} {} & \left[ \text{5},12,13 \right] & {} \\ {{A}'} & {{B}'} & {{C}'} \\ \left[ 9,40,41 \right] & \left[ \text{35,12,37} \right] & \left[ \text{11,60,61} \right] \end{matrix}$

Area proportional to sums of squares

All primitive triples with $b+1=c$ and with a odd can be generated as follows:[14]

$\left( 3,4,5 \right)$ 1 + 2 + 3 $6\times (1^2)$ 1 $\tfrac{5}{2}$
$\left( 5,12,13 \right)$ 1 + 2 + 3 + 4 + 5 $6\times (1^2+2^2)$ 2 $\tfrac{13}{2}$
$\left( 7,24,25 \right)$ 1 + 2 + 3 + 4 + 5 + 6 + 7 $6\times (1^2+2^2+3^2)$ 3 $\tfrac{25}{2}$
....... ....... ....... ....... .......
$\left( a,\tfrac{a^2-1}{2},\tfrac{a^2+1}{2} \right)$ 1 + 2 + ... + a $6\times \left[ 1^2+2^2+\cdots+\left( \tfrac{a-1}{2} \right)^2 \right]$ $\left( \tfrac{a-1}{2} \right)$ $\tfrac{c}{2}$

Height-excess enumeration theorem

Wade and Wade[15] first introduced the categorization of Pythagorean triples by their height, defined as c - b, linking 3,4,5 to 5,12,13 and 7,24,25 and so on.

McCullough and Wade[16] extended this approach, which produces all Pythagorean triples when $k> \frac{h \sqrt{2}}{d}:$ Write a positive integer h as pq2 with p square-free and q positive. Set d = 2pq if p is odd, or d= pq if p is even. For all pairs (h,k) of positive integers, the triples are given by

$(h+dk, dk+\frac{(dk)^2}{2h}, h+dk+\frac{(dk)^2}{2h}).$

The primitive triples occur when gcd(k, h) = 1 and either h=q2 with q odd or h=2q2.

References

1. ^ Fibonacci, Leonardo Pisano, (1225), Liber Quadratorum.
2. ^ Fibonacci, Leonardo Pisano . The Book of Squares (Liber Quadratorum). An annotated translation into modern English by L. E. Sigler. (1987) Orlando, FL: Academic Press. ISBN 978-0-12-643130-8
3. ^ Stifel, Michael, (1544), Arithmetica Integra.
4. ^ Ozanam, Jacques (1814). "Recreations in Mathematics and Natural Philosophy" 1. G. Kearsley. p. 49. Retrieved 2009-11-19.
5. ^ Ozanam, Jacques, (1844). Science and Natural Philosophy: Dr. Hutton’s Translation of Montucla’s edition of Ozanam, revised by Edward Riddle, Thomas Tegg, London. Read online- Cornell University
6. ^ Dickson, L. E. (1920), History of the Theory of Numbers, Vol.II. Diophantine Analysis, Carnegie Institution of Washington, Publication No. 256, 12+803pp Read online - University of Toronto
7. ^ Rukavicka, J. (2013), Dickson's Method for Generating Pythagorean Triples Revisited, European Journal of Pure and Applied Mathematics ISSN 1307-5543, Vol. 6, No. 3 (2013) p.363-364, online
8. ^ Horadam, A. F., "Fibonacci number triples", American Mathematical Monthly 68, 1961, 751-753.
9. ^ a b Bernhart, Frank R. and Price, H. Lee (2005). "Heron's formula, Descartes circles, and Pythagorean triangles". arXiv:math/0701624v1 [math.MG].
10. ^ a b Price, H. Lee (2008). "The Pythagorean Tree: A New Species". arXiv:0809.4324 [math.HO].
11. ^ a b Berggren, B. (1934). "Pytagoreiska trianglar". Tidskrift för elementär matematik, fysik och kemi (in Swedish) 17: 129–139.
12. ^ Carvalho, Alda; Pereira dos Santos, Carlos (2012). "A very useful Pythagorean tree". In Silva, Jorge Nuno. Proceedings of the recreational mathematics colloquium II, University of Évora, Portugal, April 27–30, 2011. Lisboa: Associação Ludus. pp. 3–15. ISBN 9789899734623.
13. ^ J. L. Poet and D. L. Vestal, Jr. (2005). “Curious Consequences of a Miscopied Quadratic, ” College Mathematics Journal 36 , 273–277.
14. ^ Barbeau, Edward, Power Play, Mathematical Association of America,1997, p. 51, item 3.
15. ^ Wade, Peter, and Wade, William, "Recursions that produce Pythoagorean triples", College Mathematics Journal 31, March 2000, 98-101.
16. ^ McCullough, Darryl, and Wade, Elizabeth, "Recursive enumeration of Pythagorean triples", College Mathematics Journal 34, March 2003, 107-111.