Pythagorean triple

From Wikipedia, the free encyclopedia
(Redirected from Pythagorean triples)
Jump to navigation Jump to search

Template:Short description

File:Pythagorean theorem - Ani.gif
Animation demonstrating the smallest Pythagorean triple, 32 + 42 = 52Script error: No such module "Check for unknown parameters".

A Pythagorean triple consists of three positive integers aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., and cScript error: No such module "Check for unknown parameters"., such that a2 + b2 = c2Script error: No such module "Check for unknown parameters".. Such a triple is commonly written (a, b, c)Script error: No such module "Check for unknown parameters"., a well-known example is (3, 4, 5)Script error: No such module "Check for unknown parameters".. If (a, b, c)Script error: No such module "Check for unknown parameters". is a Pythagorean triple, then so is (ka, kb, kc)Script error: No such module "Check for unknown parameters". for any positive integer kScript error: No such module "Check for unknown parameters".. A triangle whose side lengths are a Pythagorean triple is a right triangle and called a Pythagorean triangle.

A primitive Pythagorean triple is one in which aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". and cScript error: No such module "Check for unknown parameters". are coprime (that is, they have no common divisor larger than 1).[1] For example, (3, 4, 5)Script error: No such module "Check for unknown parameters". is a primitive Pythagorean triple whereas (6, 8, 10)Script error: No such module "Check for unknown parameters". is not. Every Pythagorean triple can be scaled to a unique primitive Pythagorean triple by dividing (a, b, c)Script error: No such module "Check for unknown parameters". by their greatest common divisor. Conversely, every Pythagorean triple can be obtained by multiplying the elements of a primitive Pythagorean triple by a positive integer (the same for the three elements).

The name is derived from the Pythagorean theorem, stating that every right triangle has side lengths satisfying the formula a2+b2=c2; thus, Pythagorean triples describe the three integer side lengths of a right triangle. However, right triangles with non-integer sides do not form Pythagorean triples. For instance, the triangle with sides a=b=1 and c=2 is a right triangle, but (1,1,2) is not a Pythagorean triple because the square root of 2 is not an integer. Moreover, 1 and 2 do not have an integer common multiple because 2 is irrational.

Pythagorean triples have been known since ancient times. The oldest known record comes from Plimpton 322, a Babylonian clay tablet from about 1800 BC, written in a sexagesimal number system.[2]

When searching for integer solutions, the equation a2 + b2 = c2Script error: No such module "Check for unknown parameters". is a Diophantine equation. Thus Pythagorean triples are among the oldest known solutions of a nonlinear Diophantine equation.

Examples

File:Pythagorean Triples Scatter Plot.png
Scatter plot of the legs (aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters".) of the first Pythagorean triples with aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". less than 6000. Negative values are included to illustrate the parabolic patterns. The "rays" are a result of the fact that if (a, b, c)Script error: No such module "Check for unknown parameters". is a Pythagorean triple, then so is (2a, 2b, 2c)Script error: No such module "Check for unknown parameters"., (3a, 3b, 3c)Script error: No such module "Check for unknown parameters". and, more generally, (ka, kb, kc)Script error: No such module "Check for unknown parameters". for any positive integer kScript error: No such module "Check for unknown parameters"..

There are 16 primitive Pythagorean triples of numbers up to 100:

(3, 4, 5) (5, 12, 13) (8, 15, 17) (7, 24, 25)
(20, 21, 29) (12, 35, 37) (9, 40, 41) (28, 45, 53)
(11, 60, 61) (16, 63, 65) (33, 56, 65) (48, 55, 73)
(13, 84, 85) (36, 77, 85) (39, 80, 89) (65, 72, 97)

Other small Pythagorean triples such as (6, 8, 10) are not listed because they are not primitive; for instance (6, 8, 10) is a multiple of (3, 4, 5).

Each of these points (with their multiples) forms a radiating line in the scatter plot to the right.

These are the remaining primitive Pythagorean triples of numbers up to 300:

(20, 99, 101) (60, 91, 109) (15, 112, 113) (44, 117, 125)
(88, 105, 137) (17, 144, 145) (24, 143, 145) (51, 140, 149)
(85, 132, 157) (119, 120, 169) (52, 165, 173) (19, 180, 181)
(57, 176, 185) (104, 153, 185) (95, 168, 193) (28, 195, 197)
(84, 187, 205) (133, 156, 205) (21, 220, 221) (140, 171, 221)
(60, 221, 229) (105, 208, 233) (120, 209, 241) (32, 255, 257)
(23, 264, 265) (96, 247, 265) (69, 260, 269) (115, 252, 277)
(160, 231, 281) (161, 240, 289) (68, 285, 293)

Generating a triple

Script error: No such module "Labelled list hatnote".

Euclid's formula
Template:Calculator label = Template:Calculator
Template:Calculator label = Template:Calculator:
a = Template:Calculator
b = Template:Calculator
c = Template:Calculator
Primitive Pythagorean triples shown as triangles on a graph
The primitive Pythagorean triples. The odd leg aScript error: No such module "Check for unknown parameters". is plotted on the horizontal axis, the even leg bScript error: No such module "Check for unknown parameters". on the vertical. The curvilinear grid is composed of curves of constant mnScript error: No such module "Check for unknown parameters". and of constant m + nScript error: No such module "Check for unknown parameters". in Euclid's formula.
File:Pythagorean Triples from Grapher.png
A plot of triples generated by Euclid's formula maps out part of the z2 = x2 + y2Script error: No such module "Check for unknown parameters". cone. A constant mScript error: No such module "Check for unknown parameters". or nScript error: No such module "Check for unknown parameters". traces out part of a parabola on the cone.

Euclid's formula[3] is a fundamental formula for generating Pythagorean triples given an arbitrary pair of integers mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". with m > n > 0Script error: No such module "Check for unknown parameters".. The formula states that the integers

a=m2n2, b=2mn, c=m2+n2

form a Pythagorean triple. For example, the integers

m=2, n=1

generate the primitive triple (3, 4, 5):

a=2212=3, b=2×2×1=4, c=22+12=5.

The triple generated by Euclid's formula is primitive if and only if mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are coprime and exactly one of them is even. When both mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are odd, then aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., and cScript error: No such module "Check for unknown parameters". will be even, and the triple will not be primitive; however, dividing aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., and cScript error: No such module "Check for unknown parameters". by 2 will yield a primitive triple when mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are coprime.[4]

Every primitive triple arises (after the exchange of aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"., if aScript error: No such module "Check for unknown parameters". is even) from a unique pair of coprime numbers mScript error: No such module "Check for unknown parameters"., nScript error: No such module "Check for unknown parameters"., one of which is even. It follows that there are infinitely many primitive Pythagorean triples. This relationship of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". and cScript error: No such module "Check for unknown parameters". to mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". from Euclid's formula is referenced throughout the rest of this article.

Despite generating all primitive triples, Euclid's formula does not produce all triples—for example, (9, 12, 15) cannot be generated using integer mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters".. This can be remedied by inserting an additional parameter kScript error: No such module "Check for unknown parameters". to the formula: every Pythagorean triple is generated uniquely by

a=k(m2n2), b=k(2mn), c=k(m2+n2)

where mScript error: No such module "Check for unknown parameters"., nScript error: No such module "Check for unknown parameters"., and kScript error: No such module "Check for unknown parameters". are positive integers with m > nScript error: No such module "Check for unknown parameters"., and with mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". coprime and not both odd.

That these formulas generate Pythagorean triples can be verified by expanding a2 + b2Script error: No such module "Check for unknown parameters". using elementary algebra and verifying that the result equals c2Script error: No such module "Check for unknown parameters".. Since every Pythagorean triple can be divided through by some integer kScript error: No such module "Check for unknown parameters". to obtain a primitive triple, every triple can be generated uniquely by using the formula with mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". to generate its primitive counterpart and then multiplying through by kScript error: No such module "Check for unknown parameters". as in the last equation.

Choosing mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". from certain integer sequences gives interesting results. For example, if mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are consecutive Pell numbers, aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". will differ by 1.[5]

Many formulas for generating triples with particular properties have been developed since the time of Euclid.

Proof of Euclid's formula

That satisfaction of Euclid's formula by a, b, c is sufficient for the triangle to be Pythagorean is apparent from the fact that for positive integers mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters"., m > nScript error: No such module "Check for unknown parameters"., the aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., and cScript error: No such module "Check for unknown parameters". given by the formula are all positive integers, and from the fact that

a2+b2=(m2n2)2+(2mn)2=(m2+n2)2=c2.

A proof of the necessity that a, b, c be expressed by Euclid's formula for any primitive Pythagorean triple is as follows.[6] All such primitive triples can be written as (a, b, c)Script error: No such module "Check for unknown parameters". where a2 + b2 = c2Script error: No such module "Check for unknown parameters". and aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". are coprime. Thus aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". are pairwise coprime (if a prime number divided two of them, it would be forced also to divide the third one). As aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". are coprime, at least one of them is odd. If we suppose that aScript error: No such module "Check for unknown parameters". is odd, then bScript error: No such module "Check for unknown parameters". is even and cScript error: No such module "Check for unknown parameters". is odd (if both aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". were odd, cScript error: No such module "Check for unknown parameters". would be even, and c2Script error: No such module "Check for unknown parameters". would be a multiple of 4, while a2 + b2Script error: No such module "Check for unknown parameters". would be congruent to 2 modulo 4, as an odd square is congruent to 1 modulo 4).

From a2+b2=c2, assume aScript error: No such module "Check for unknown parameters". is odd. We obtain c2a2=b2 and hence (ca)(c+a)=b2. Then (c+a)b=b(ca). Since (c+a)b is rational, we set it equal to mn in lowest terms. Thus (ca)b=nm, being the reciprocal of (c+a)b. Then solving

cb+ab=mn,cbab=nm

for cb and ab gives

cb=12(mn+nm)=m2+n22mn,ab=12(mnnm)=m2n22mn.

As mn is fully reduced, mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are coprime, and they cannot both be even. If they were both odd, the numerator of m2n22mn would be a multiple of 4 (because an odd square is congruent to 1 modulo 4), and the denominator 2mn would not be a multiple of 4. Since 4 would be the minimum possible even factor in the numerator and 2 would be the maximum possible even factor in the denominator, this would imply aScript error: No such module "Check for unknown parameters". to be even despite defining it as odd. Thus one of mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". is odd and the other is even, and the numerators of the two fractions with denominator 2mn are odd. Thus these fractions are fully reduced (an odd prime dividing this denominator divides one of mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". but not the other; thus it does not divide m2 ± n2Script error: No such module "Check for unknown parameters".). One may thus equate numerators with numerators and denominators with denominators, giving Euclid's formula

a=m2n2, b=2mn, c=m2+n2 with mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". coprime and of opposite parities.

A longer but more commonplace proof is given in Maor (2007)[7] and Sierpiński (2003).[8] Another proof is given in Template:Section link, as an instance of a general method that applies to every homogeneous Diophantine equation of degree two.

Interpretation of parameters in Euclid's formula

Suppose the sides of a Pythagorean triangle have lengths m2n2Script error: No such module "Check for unknown parameters"., 2mnScript error: No such module "Check for unknown parameters"., and m2 + n2Script error: No such module "Check for unknown parameters"., and suppose the angle between the leg of length m2n2Script error: No such module "Check for unknown parameters". and the hypotenuse of length m2 + n2Script error: No such module "Check for unknown parameters". is denoted as βScript error: No such module "Check for unknown parameters".. Then tanβ2=nm and the full-angle trigonometric values are sinβ=2mnm2+n2, cosβ=m2n2m2+n2, and Template:Tmath.[9]

A variant

The following variant of Euclid's formula is sometimes more convenient, as being more symmetric in mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". (same parity condition on Template:Mvar and Template:Mvar).

If mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are two odd integers such that m > nScript error: No such module "Check for unknown parameters"., then

a=mn,b=m2n22,c=m2+n22

are three integers that form a Pythagorean triple, which is primitive if and only if mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". are coprime. Conversely, every primitive Pythagorean triple arises (after the exchange of aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"., if aScript error: No such module "Check for unknown parameters". is even) from a unique pair m > n > 0Script error: No such module "Check for unknown parameters". of coprime odd integers.

Not exchanging a and b

In the presentation above, it is said that all Pythagorean triples are uniquely obtained from Euclid's formula "after the exchange of a and b, if a is even". Euclid's formula and the variant above can be merged as follows to avoid this exchange, leading to the following result.

Every primitive Pythagorean triple can be uniquely written

a=2εmn,b=ε(m2n2),c=ε(m2+n2),

where Template:Mvar and Template:Mvar are positive coprime integers, and ε=12 if Template:Mvar and Template:Mvar are both odd, and ε=1 otherwise. Equivalently, ε=12 if Template:Mvar is odd, and ε=1 if Template:Mvar is even.

Elementary properties of primitive Pythagorean triples

General properties

The properties of a primitive Pythagorean triple (a, b, c)Script error: No such module "Check for unknown parameters". with a < b < cScript error: No such module "Check for unknown parameters". (without specifying which of aScript error: No such module "Check for unknown parameters". or bScript error: No such module "Check for unknown parameters". is even and which is odd) include:

  • (ca)(cb)2 is always a perfect square;[10] in fact it is equal to the square of the inradius of the associated right triangle.Script error: No such module "Unsubst".
  • At most one of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". is a square.[11]
  • The area of a Pythagorean triangle cannot be the square[12]Template:Rp or twice the square[12]Template:Rp of an integer.
  • Exactly one of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". is divisible by 2 (is even), and the hypotenuse cScript error: No such module "Check for unknown parameters". is always odd.[13]
  • Exactly one of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". is divisible by 3, but never cScript error: No such module "Check for unknown parameters"..[14][8]Template:Rp
  • Exactly one of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". is divisible by 4,[8] but never cScript error: No such module "Check for unknown parameters". (because cScript error: No such module "Check for unknown parameters". is never even).
  • Exactly one of aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". is divisible by 5.[8]
  • The largest number that always divides abc is 60.[15]
  • Any odd number of the form 2m+1Script error: No such module "Check for unknown parameters"., where mScript error: No such module "Check for unknown parameters". is an integer and m>1Script error: No such module "Check for unknown parameters"., can be the odd leg of a primitive Pythagorean triple. See almost-isosceles primitive Pythagorean triples section below. However, only even numbers divisible by 4 can be the even leg of a primitive Pythagorean triple. This is because Euclid's formula for the even leg given above is 2mnScript error: No such module "Check for unknown parameters". and one of mScript error: No such module "Check for unknown parameters". or nScript error: No such module "Check for unknown parameters". must be even.
  • The hypotenuse cScript error: No such module "Check for unknown parameters". (which is always odd) is the sum of two squares. This requires all of its prime factors to be primes of the form 4n + 1Script error: No such module "Check for unknown parameters"..[16] Therefore, c is of the form 4n + 1Script error: No such module "Check for unknown parameters".. A sequence of possible hypotenuse numbers for a primitive Pythagorean triple can be found at (sequence A008846 in the OEIS).
  • The area (K = ab/2)Script error: No such module "Check for unknown parameters". is a congruent number[17] divisible by 6.
  • In every Pythagorean triangle, the radius of the incircle and the radii of the three excircles are positive integers. Specifically, for a primitive triple the radius of the incircle is r = n(mn)Script error: No such module "Check for unknown parameters"., and the radii of the excircles opposite the sides m2n2Script error: No such module "Check for unknown parameters"., 2mn, and the hypotenuse m2 + n2Script error: No such module "Check for unknown parameters". are respectively m(mn)Script error: No such module "Check for unknown parameters"., n(m + n)Script error: No such module "Check for unknown parameters"., and m(m + n)Script error: No such module "Check for unknown parameters"..[18]
  • As for any right triangle, the converse of Thales' theorem says that the diameter of the circumcircle equals the hypotenuse; hence for primitive triples the circumdiameter is m2 + n2Script error: No such module "Check for unknown parameters"., and the circumradius is half of this and thus is rational but non-integer (since mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". have opposite parity).
  • When the area of a Pythagorean triangle is multiplied by the curvatures of its incircle and 3 excircles, the result is four positive integers w > x > y > zScript error: No such module "Check for unknown parameters"., respectively. Integers w, x, y, zScript error: No such module "Check for unknown parameters". satisfy Descartes's Circle Equation.[19] Equivalently, the radius of the outer Soddy circle of any right triangle is equal to its semiperimeter. The outer Soddy center is located at DScript error: No such module "Check for unknown parameters"., where ACBDScript error: No such module "Check for unknown parameters". is a rectangle, ACBScript error: No such module "Check for unknown parameters". the right triangle and ABScript error: No such module "Check for unknown parameters". its hypotenuse.[19]Template:Rp
  • Only two sides of a primitive Pythagorean triple can be simultaneously prime because by Euclid's formula for generating a primitive Pythagorean triple, one of the legs must be composite and even.[20] However, only one side can be an integer of perfect power p2 because if two sides were integers of perfect powers with equal exponent p it would contradict the fact that there are no integer solutions to the Diophantine equation x2p±y2p=z2, with x, y and z being pairwise coprime.[21]
  • There are no Pythagorean triangles in which the hypotenuse and one leg are the legs of another Pythagorean triangle; this is one of the equivalent forms of Fermat's right triangle theorem.[12]Template:Rp
  • Each primitive Pythagorean triangle has a ratio of area, KScript error: No such module "Check for unknown parameters"., to squared semiperimeter, sScript error: No such module "Check for unknown parameters"., that is unique to itself and is given by[22]
Ks2=n(mn)m(m+n)=1cs.

Special cases

In addition, special Pythagorean triples with certain additional properties can be guaranteed to exist:

  • Every integer greater than 2 that is not congruent to 2 mod 4 (in other words, every integer greater than 2 which is not of the form 4k + 2Script error: No such module "Check for unknown parameters".) is part of a primitive Pythagorean triple. (If the integer has the form 4kScript error: No such module "Check for unknown parameters"., one may take n = 1Script error: No such module "Check for unknown parameters". and m = 2kScript error: No such module "Check for unknown parameters". in Euclid's formula; if the integer is 2k + 1Script error: No such module "Check for unknown parameters"., one may take n = kScript error: No such module "Check for unknown parameters". and m = k + 1Script error: No such module "Check for unknown parameters"..)
  • Every integer greater than 2 is part of a primitive or non-primitive Pythagorean triple. For example, the integers 6, 10, 14, and 18 are not part of primitive triples, but are part of the non-primitive triples (6, 8, 10)Script error: No such module "Check for unknown parameters"., (14, 48, 50)Script error: No such module "Check for unknown parameters". and (18, 80, 82)Script error: No such module "Check for unknown parameters"..
  • There exist infinitely many Pythagorean triples in which the hypotenuse and the longest leg differ by exactly one. Such triples are necessarily primitive and have the form (2n + 1, 2n2 + 2n, 2n2 + 2n +1)Script error: No such module "Check for unknown parameters".. This results from Euclid's formula by remarking that the condition implies that the triple is primitive and must verify (m2 + n2) - 2mn = 1Script error: No such module "Check for unknown parameters".. This implies (mn)2 = 1Script error: No such module "Check for unknown parameters"., and thus m = n + 1Script error: No such module "Check for unknown parameters".. The above form of the triples results thus of substituting mScript error: No such module "Check for unknown parameters". for n + 1Script error: No such module "Check for unknown parameters". in Euclid's formula.
  • There exist infinitely many primitive Pythagorean triples in which the hypotenuse and the longest leg differ by exactly two. They are all primitive, and are obtained by putting n = 1Script error: No such module "Check for unknown parameters". in Euclid's formula. More generally, for every integer k > 0Script error: No such module "Check for unknown parameters"., there exist infinitely many primitive Pythagorean triples in which the hypotenuse and the odd leg differ by 2k2Script error: No such module "Check for unknown parameters".. They are obtained by putting n = kScript error: No such module "Check for unknown parameters". in Euclid's formula.
  • There exist infinitely many Pythagorean triples in which the two legs differ by exactly one. For example, 202 + 212 = 292; these are generated by Euclid's formula when mnn is a convergent to 2.
  • For each positive integer kScript error: No such module "Check for unknown parameters"., there exist kScript error: No such module "Check for unknown parameters". Pythagorean triples with different hypotenuses and the same area.
  • For each positive integer kScript error: No such module "Check for unknown parameters"., there exist at least kScript error: No such module "Check for unknown parameters". different primitive Pythagorean triples with the same leg aScript error: No such module "Check for unknown parameters"., where aScript error: No such module "Check for unknown parameters". is some positive integer (the length of the even leg is 2mn, and it suffices to choose aScript error: No such module "Check for unknown parameters". with many factorizations, for example a = 4bScript error: No such module "Check for unknown parameters"., where bScript error: No such module "Check for unknown parameters". is a product of kScript error: No such module "Check for unknown parameters". different odd primes; this produces at least 2kScript error: No such module "Check for unknown parameters". different primitive triples).[8]Template:Rp
  • For each positive integer kScript error: No such module "Check for unknown parameters"., there exist at least kScript error: No such module "Check for unknown parameters". different Pythagorean triples with the same hypotenuse.[8]Template:Rp
  • If c = peScript error: No such module "Check for unknown parameters". is a prime power, there exists a primitive Pythagorean triple a2 + b2 = c2Script error: No such module "Check for unknown parameters". if and only if the prime pScript error: No such module "Check for unknown parameters". has the form 4n + 1Script error: No such module "Check for unknown parameters".; this triple is unique up to the exchange of a and b.
  • More generally, a positive integer Template:Mvar is the hypotenuse of a primitive Pythagorean triple if and only if each prime factor of Template:Mvar is congruent to 1Script error: No such module "Check for unknown parameters". modulo 4Script error: No such module "Check for unknown parameters".; that is, each prime factor has the form 4n + 1Script error: No such module "Check for unknown parameters".. In this case, the number of primitive Pythagorean triples (a, b, c)Script error: No such module "Check for unknown parameters". with a < bScript error: No such module "Check for unknown parameters". is 2k−1Script error: No such module "Check for unknown parameters"., where Template:Mvar is the number of distinct prime factors of Template:Mvar.[25]
  • There exist infinitely many Pythagorean triples with square numbers for both the hypotenuse cScript error: No such module "Check for unknown parameters". and the sum of the legs a + bScript error: No such module "Check for unknown parameters".. According to Fermat, the smallest such triple[26] has sides a = 4,565,486,027,761Script error: No such module "Check for unknown parameters".; b = 1,061,652,293,520Script error: No such module "Check for unknown parameters".; and c = 4,687,298,610,289Script error: No such module "Check for unknown parameters".. Here a + b = 2,372,1592Script error: No such module "Check for unknown parameters". and c = 2,165,0172Script error: No such module "Check for unknown parameters".. This is generated by Euclid's formula with parameter values m = 2,150,905Script error: No such module "Check for unknown parameters". and n = 246,792Script error: No such module "Check for unknown parameters"..
  • There exist non-primitive Pythagorean triangles with integer altitude from the hypotenuse.[27][28] Such Pythagorean triangles are known as decomposable since they can be split along this altitude into two separate and smaller Pythagorean triangles.[23]

Geometry of Euclid's formula

Rational points on a unit circle

File:Pythagorean triple and rational point on unit triangle 1.svg
3,4,5 maps to x,y point (4/5,3/5) on the unit circle
File:Stereographic projection of rational points.svg
The rational points on a circle correspond, under stereographic projection, to the rational points of the line.

Euclid's formula for a Pythagorean triple

a=m2n2,b=2mn,c=m2+n2

can be understood in terms of the geometry of rational points on the unit circle Script error: No such module "Footnotes"..

In fact, a point in the Cartesian plane with coordinates (x, y)Script error: No such module "Check for unknown parameters". belongs to the unit circle if x2 + y2 = 1Script error: No such module "Check for unknown parameters".. The point is rational if xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". are rational numbers, that is, if there are coprime integers a, b, cScript error: No such module "Check for unknown parameters". such that

(ac)2+(bc)2=1.

By multiplying both members by c2Script error: No such module "Check for unknown parameters"., one can see that the rational points on the circle are in one-to-one correspondence with the primitive Pythagorean triples.

The unit circle may also be defined by a parametric equation

x=1t21+t2,y=2t1+t2.

Euclid's formula for Pythagorean triples and the inverse relationship t = y / (1 + x)Script error: No such module "Check for unknown parameters". mean that, except for (−1, 0)Script error: No such module "Check for unknown parameters"., a point (x, y)Script error: No such module "Check for unknown parameters". on the circle is rational if and only if the corresponding value of tScript error: No such module "Check for unknown parameters". is a rational number. Note that t = y / (1 + x) = b / (c + a) = n / mScript error: No such module "Check for unknown parameters". is also the tangent of half of the angle that is opposite the triangle side of length Template:Mvar.

Stereographic approach

File:Stereoprojzero.svg
Stereographic projection of the unit circle onto the xScript error: No such module "Check for unknown parameters".-axis. Given a point PScript error: No such module "Check for unknown parameters". on the unit circle, draw a line from PScript error: No such module "Check for unknown parameters". to the point N = (0, 1)Script error: No such module "Check for unknown parameters". (the north pole). The point PScript error: No such module "Check for unknown parameters".′ where the line intersects the xScript error: No such module "Check for unknown parameters".-axis is the stereographic projection of PScript error: No such module "Check for unknown parameters".. Inversely, starting with a point PScript error: No such module "Check for unknown parameters".′ on the xScript error: No such module "Check for unknown parameters".-axis, and drawing a line from PScript error: No such module "Check for unknown parameters".′ to NScript error: No such module "Check for unknown parameters"., the inverse stereographic projection is the point PScript error: No such module "Check for unknown parameters". where the line intersects the unit circle.

There is a correspondence between points on the unit circle with rational coordinates and primitive Pythagorean triples. At this point, Euclid's formulae can be derived either by methods of trigonometry or equivalently by using the stereographic projection.

For the stereographic approach, suppose that PScript error: No such module "Check for unknown parameters".′ is a point on the xScript error: No such module "Check for unknown parameters".-axis with rational coordinates

P=(mn,0).

Then, it can be shown by basic algebra that the point PScript error: No such module "Check for unknown parameters". has coordinates

P=(2(mn)(mn)2+1,(mn)21(mn)2+1)=(2mnm2+n2,m2n2m2+n2).

This establishes that each rational point of the xScript error: No such module "Check for unknown parameters".-axis goes over to a rational point of the unit circle. The converse, that every rational point of the unit circle comes from such a point of the xScript error: No such module "Check for unknown parameters".-axis, follows by applying the inverse stereographic projection. Suppose that P(x, y)Script error: No such module "Check for unknown parameters". is a point of the unit circle with xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". rational numbers. Then the point PScript error: No such module "Check for unknown parameters".′ obtained by stereographic projection onto the xScript error: No such module "Check for unknown parameters".-axis has coordinates

(x1y,0)

which is rational.

In terms of algebraic geometry, the algebraic variety of rational points on the unit circle is birational to the affine line over the rational numbers. The unit circle is thus called a rational curve, and it is this fact which enables an explicit parameterization of the (rational number) points on it by means of rational functions.

Pythagorean triangles in a 2D lattice

A 2D lattice is a regular array of isolated points where if any one point is chosen as the Cartesian origin (0, 0), then all the other points are at (x, y)Script error: No such module "Check for unknown parameters". where xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". range over all positive and negative integers. Any Pythagorean triangle with triple (a, b, c)Script error: No such module "Check for unknown parameters". can be drawn within a 2D lattice with vertices at coordinates (0, 0)Script error: No such module "Check for unknown parameters"., (a, 0)Script error: No such module "Check for unknown parameters". and (0, b)Script error: No such module "Check for unknown parameters".. The count of lattice points lying strictly within the bounds of the triangle is given by   (a1)(b1)gcd(a,b)+12;[29] for primitive Pythagorean triples this interior lattice count is  (a1)(b1)2. The area (by Pick's theorem equal to one less than the interior lattice count plus half the boundary lattice count) equals  ab2 .

The first occurrence of two primitive Pythagorean triples sharing the same area occurs with triangles with sides (20, 21, 29), (12, 35, 37)Script error: No such module "Check for unknown parameters". and common area 210 (sequence A093536 in the OEIS). The first occurrence of two primitive Pythagorean triples sharing the same interior lattice count occurs with (18108, 252685, 253333), (28077, 162964, 165365)Script error: No such module "Check for unknown parameters". and interior lattice count 2287674594 (sequence A225760 in the OEIS). Three primitive Pythagorean triples have been found sharing the same area: (4485, 5852, 7373)Script error: No such module "Check for unknown parameters"., (3059, 8580, 9109)Script error: No such module "Check for unknown parameters"., (1380, 19019, 19069)Script error: No such module "Check for unknown parameters". with area 13123110. As yet, no set of three primitive Pythagorean triples have been found sharing the same interior lattice count.

Enumeration of primitive Pythagorean triples

By Euclid's formula all primitive Pythagorean triples can be generated from integers m and n with m>n>0, m+n odd and gcd(m,n)=1. Hence there is a 1 to 1 mapping of rationals (in lowest terms) to primitive Pythagorean triples where nm is in the interval (0,1) and m+n odd.

The reverse mapping from a primitive triple (a,b,c) where c>b>a>0 to a rational nm is achieved by studying the two sums a+c and b+c. One of these sums will be a square that can be equated to (m+n)2 and the other will be twice a square that can be equated to 2m2. It is then possible to determine the rational nm.

In order to enumerate primitive Pythagorean triples the rational can be expressed as an ordered pair (n,m) and mapped to an integer using a pairing function such as Cantor's pairing function. An example can be seen at (sequence A277557 in the OEIS). It begins

8,18,19,32,33,34, and gives rationals
12,23,14,34,25,16, these, in turn, generate primitive triples
(3,4,5),(5,12,13),(8,15,17),(7,24,25),(20,21,29),(12,35,37),

Spinors and the modular group

Pythagorean triples can likewise be encoded into a square matrix of the form

X=[c+baacb].

A matrix of this form is symmetric. Furthermore, the determinant of XScript error: No such module "Check for unknown parameters". is

detX=c2a2b2

which is zero precisely when (a,b,c)Script error: No such module "Check for unknown parameters". is a Pythagorean triple. If XScript error: No such module "Check for unknown parameters". corresponds to a Pythagorean triple, then as a matrix it must have rank 1.

Since XScript error: No such module "Check for unknown parameters". is symmetric, it follows from a result in linear algebra that there is a column vector ξ = [m n]TScript error: No such module "Check for unknown parameters". such that the outer product

Template:NumBlk2

holds, where the TScript error: No such module "Check for unknown parameters". denotes the matrix transpose. Since ξ and -ξ produce the same Pythagorean triple, the vector ξ can be considered a spinor (for the Lorentz group SO(1, 2)). In abstract terms, the Euclid formula means that each primitive Pythagorean triple can be written as the outer product with itself of a spinor with integer entries, as in (1).

The modular group Γ is the set of 2×2 matrices with integer entries

A=[αβγδ]

with determinant equal to one: αδβγ = 1Script error: No such module "Check for unknown parameters".. This set forms a group, since the inverse of a matrix in Γ is again in Γ, as is the product of two matrices in Γ. The modular group acts on the collection of all integer spinors. Furthermore, the group is transitive on the collection of integer spinors with relatively prime entries. For if [m n]TScript error: No such module "Check for unknown parameters". has relatively prime entries, then

[mvnu][10]=[mn]

where uScript error: No such module "Check for unknown parameters". and vScript error: No such module "Check for unknown parameters". are selected (by the Euclidean algorithm) so that mu + nv = 1Script error: No such module "Check for unknown parameters"..

By acting on the spinor ξ in (1), the action of Γ goes over to an action on Pythagorean triples, provided one allows for triples with possibly negative components. Thus if AScript error: No such module "Check for unknown parameters". is a matrix in ΓScript error: No such module "Check for unknown parameters"., then

Template:NumBlk2

gives rise to an action on the matrix XScript error: No such module "Check for unknown parameters". in (1). This does not give a well-defined action on primitive triples, since it may take a primitive triple to an imprimitive one. It is convenient at this point (per Script error: No such module "Footnotes".) to call a triple (a,b,c)Script error: No such module "Check for unknown parameters". standard if c > 0Script error: No such module "Check for unknown parameters". and either (a,b,c)Script error: No such module "Check for unknown parameters". are relatively prime or (a/2,b/2,c/2)Script error: No such module "Check for unknown parameters". are relatively prime with a/2Script error: No such module "Check for unknown parameters". odd. If the spinor [m n]TScript error: No such module "Check for unknown parameters". has relatively prime entries, then the associated triple (a,b,c)Script error: No such module "Check for unknown parameters". determined by (1) is a standard triple. It follows that the action of the modular group is transitive on the set of standard triples.

Alternatively, restrict attention to those values of mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". for which mScript error: No such module "Check for unknown parameters". is odd and nScript error: No such module "Check for unknown parameters". is even. Let the subgroup Γ(2) of Γ be the kernel of the group homomorphism

Γ=SL(2,𝐙)SL(2,𝐙2)

where SL(2,Z2)Script error: No such module "Check for unknown parameters". is the special linear group over the finite field Z2Script error: No such module "Check for unknown parameters". of integers modulo 2. Then Γ(2) is the group of unimodular transformations which preserve the parity of each entry. Thus if the first entry of ξ is odd and the second entry is even, then the same is true of AξScript error: No such module "Check for unknown parameters". for all A ∈ Γ(2)Script error: No such module "Check for unknown parameters".. In fact, under the action (2), the group Γ(2) acts transitively on the collection of primitive Pythagorean triples Script error: No such module "Footnotes"..

The group Γ(2) is the free group whose generators are the matrices

U=[1201],L=[1021].

Consequently, every primitive Pythagorean triple can be obtained in a unique way as a product of copies of the matrices UScript error: No such module "Check for unknown parameters". and LScript error: No such module "Check for unknown parameters"..

Parent/child relationships

Script error: No such module "Labelled list hatnote".

By a result of Script error: No such module "Footnotes"., all primitive Pythagorean triples can be generated from the (3, 4, 5) triangle by using the three linear transformations T1, T2, T3 below, where aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". are sides of a triple:

new side aScript error: No such module "Check for unknown parameters". new side bScript error: No such module "Check for unknown parameters". new side cScript error: No such module "Check for unknown parameters".
T1Script error: No such module "Check for unknown parameters".: a − 2b + 2cScript error: No such module "Check for unknown parameters". 2ab + 2cScript error: No such module "Check for unknown parameters". 2a − 2b + 3cScript error: No such module "Check for unknown parameters".
T2Script error: No such module "Check for unknown parameters".: a + 2b + 2cScript error: No such module "Check for unknown parameters". 2a + b + 2cScript error: No such module "Check for unknown parameters". 2a + 2b + 3cScript error: No such module "Check for unknown parameters".
T3Script error: No such module "Check for unknown parameters".: a + 2b + 2cScript error: No such module "Check for unknown parameters". −2a + b + 2cScript error: No such module "Check for unknown parameters". −2a + 2b + 3cScript error: No such module "Check for unknown parameters".

In other words, every primitive triple will be a "parent" to three additional primitive triples. Starting from the initial node with a = 3Script error: No such module "Check for unknown parameters"., b = 4Script error: No such module "Check for unknown parameters"., and c = 5Script error: No such module "Check for unknown parameters"., the operation T1Script error: No such module "Check for unknown parameters". produces the new triple

(3 − (2×4) + (2×5), (2×3) − 4 + (2×5), (2×3) − (2×4) + (3×5)) = (5, 12, 13),

and similarly T2Script error: No such module "Check for unknown parameters". and T3Script error: No such module "Check for unknown parameters". produce the triples (21, 20, 29) and (15, 8, 17).

The linear transformations T1, T2, and T3 have a geometric interpretation in the language of quadratic forms. They are closely related to (but are not equal to) reflections generating the orthogonal group of x2 + y2z2Script error: No such module "Check for unknown parameters". over the integers.[30]

Relation to Gaussian integers

Alternatively, Euclid's formulae can be analyzed and proved using the Gaussian integers.[31] Gaussian integers are complex numbers of the form α = u + viScript error: No such module "Check for unknown parameters"., where uScript error: No such module "Check for unknown parameters". and vScript error: No such module "Check for unknown parameters". are ordinary integers and iScript error: No such module "Check for unknown parameters". is the square root of negative one. The units of Gaussian integers are ±1 and ±i. The ordinary integers are called the rational integers and denoted as 'ZScript error: No such module "Check for unknown parameters".'. The Gaussian integers are denoted as Z[i]Script error: No such module "Check for unknown parameters".. The right-hand side of the Pythagorean theorem may be factored in Gaussian integers:

c2=a2+b2=(a+bi)(a+bi)=(a+bi)(abi).

A primitive Pythagorean triple is one in which aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". are coprime, i.e., they share no prime factors in the integers. For such a triple, either aScript error: No such module "Check for unknown parameters". or bScript error: No such module "Check for unknown parameters". is even, and the other is odd; from this, it follows that cScript error: No such module "Check for unknown parameters". is also odd.

The two factors z := a + biScript error: No such module "Check for unknown parameters". and z* := abiScript error: No such module "Check for unknown parameters". of a primitive Pythagorean triple each equal the square of a Gaussian integer. This can be proved using the property that every Gaussian integer can be factored uniquely into Gaussian primes up to units.[32] (This unique factorization follows from the fact that, roughly speaking, a version of the Euclidean algorithm can be defined on them.) The proof has three steps. First, if aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". share no prime factors in the integers, then they also share no prime factors in the Gaussian integers. (Assume a = guScript error: No such module "Check for unknown parameters". and b = gvScript error: No such module "Check for unknown parameters". with Gaussian integers gScript error: No such module "Check for unknown parameters"., uScript error: No such module "Check for unknown parameters". and vScript error: No such module "Check for unknown parameters". and gScript error: No such module "Check for unknown parameters". not a unit. Then uScript error: No such module "Check for unknown parameters". and vScript error: No such module "Check for unknown parameters". lie on the same line through the origin. All Gaussian integers on such a line are integer multiples of some Gaussian integer hScript error: No such module "Check for unknown parameters".. But then the integer gh ≠ ±1 divides both aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"..) Second, it follows that zScript error: No such module "Check for unknown parameters". and z*Script error: No such module "Check for unknown parameters". likewise share no prime factors in the Gaussian integers. For if they did, then their common divisor δScript error: No such module "Check for unknown parameters". would also divide z + z* = 2aScript error: No such module "Check for unknown parameters". and zz* = 2ibScript error: No such module "Check for unknown parameters".. Since aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". are coprime, that implies that δScript error: No such module "Check for unknown parameters". divides 2 = (1 + i)(1 − i) = i(1 − i)2Script error: No such module "Check for unknown parameters".. From the formula c2 = zz*Script error: No such module "Check for unknown parameters"., that in turn would imply that cScript error: No such module "Check for unknown parameters". is even, contrary to the hypothesis of a primitive Pythagorean triple. Third, since c2Script error: No such module "Check for unknown parameters". is a square, every Gaussian prime in its factorization is doubled, i.e., appears an even number of times. Since zScript error: No such module "Check for unknown parameters". and z*Script error: No such module "Check for unknown parameters". share no prime factors, this doubling is also true for them. Hence, zScript error: No such module "Check for unknown parameters". and z*Script error: No such module "Check for unknown parameters". are squares.

Thus, the first factor can be written

a+bi=ε(m+ni)2,ε{±1,±i}.

The real and imaginary parts of this equation give the two formulas:

{ε=+1,a=+(m2n2),b=+2mn;ε=1,a=(m2n2),b=2mn;ε=+i,a=2mn,b=+(m2n2);ε=i,a=+2mn,b=(m2n2).

For any primitive Pythagorean triple, there must be integers mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". such that these two equations are satisfied. Hence, every Pythagorean triple can be generated from some choice of these integers.

As perfect square Gaussian integers

If we consider the square of a Gaussian integer we get the following direct interpretation of Euclid's formula as representing the perfect square of a Gaussian integer.

(m+ni)2=(m2n2)+2mni.

Using the facts that the Gaussian integers are a Euclidean domain and that for a Gaussian integer p |p|2 is always a square it is possible to show that a Pythagorean triple corresponds to the square of a prime Gaussian integer if the hypotenuse is prime.

If the Gaussian integer is not prime then it is the product of two Gaussian integers p and q with |p|2 and |q|2 integers. Since magnitudes multiply in the Gaussian integers, the product must be |p||q|, which when squared to find a Pythagorean triple must be composite. The contrapositive completes the proof.

Distribution of triples

File:Pythagorean triple scatterplot.svg
A scatter plot of the legs (a,b)Script error: No such module "Check for unknown parameters". of the first Pythagorean triples with aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". less than 4500.

There are a number of results on the distribution of Pythagorean triples. In the scatter plot, a number of obvious patterns are already apparent. Whenever the legs (a,b)Script error: No such module "Check for unknown parameters". of a primitive triple appear in the plot, all integer multiples of (a,b)Script error: No such module "Check for unknown parameters". must also appear in the plot, and this property produces the appearance of lines radiating from the origin in the diagram.

Within the scatter, there are sets of parabolic patterns with a high density of points and all their foci at the origin, opening up in all four directions. Different parabolas intersect at the axes and appear to reflect off the axis with an incidence angle of 45 degrees, with a third parabola entering in a perpendicular fashion. Within this quadrant, each arc centered on the origin shows that section of the parabola that lies between its tip and its intersection with its semi-latus rectum.

These patterns can be explained as follows. If a2/4n is an integer, then (aScript error: No such module "Check for unknown parameters"., |na2/4n|, n+a2/4n) is a Pythagorean triple. (In fact every Pythagorean triple (a, b, c)Script error: No such module "Check for unknown parameters". can be written in this way with integer nScript error: No such module "Check for unknown parameters"., possibly after exchanging aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"., since n=(b+c)/2 and aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". cannot both be odd.) The Pythagorean triples thus lie on curves given by b=|na2/4n|, that is, parabolas reflected at the aScript error: No such module "Check for unknown parameters".-axis, and the corresponding curves with aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". interchanged. If aScript error: No such module "Check for unknown parameters". is varied for a given nScript error: No such module "Check for unknown parameters". (i.e. on a given parabola), integer values of bScript error: No such module "Check for unknown parameters". occur relatively frequently if nScript error: No such module "Check for unknown parameters". is a square or a small multiple of a square. If several such values happen to lie close together, the corresponding parabolas approximately coincide, and the triples cluster in a narrow parabolic strip. For instance, 382 = 1444Script error: No such module "Check for unknown parameters"., 2 × 272 = 1458Script error: No such module "Check for unknown parameters"., 3 × 222 = 1452Script error: No such module "Check for unknown parameters"., 5 × 172 = 1445Script error: No such module "Check for unknown parameters". and 10 × 122 = 1440Script error: No such module "Check for unknown parameters".; the corresponding parabolic strip around n ≈ 1450Script error: No such module "Check for unknown parameters". is clearly visible in the scatter plot.

The angular properties described above follow immediately from the functional form of the parabolas. The parabolas are reflected at the aScript error: No such module "Check for unknown parameters".-axis at a = 2nScript error: No such module "Check for unknown parameters"., and the derivative of bScript error: No such module "Check for unknown parameters". with respect to aScript error: No such module "Check for unknown parameters". at this point is –1; hence the incidence angle is 45°. Since the clusters, like all triples, are repeated at integer multiples, the value 2nScript error: No such module "Check for unknown parameters". also corresponds to a cluster. The corresponding parabola intersects the bScript error: No such module "Check for unknown parameters".-axis at right angles at b = 2nScript error: No such module "Check for unknown parameters"., and hence its reflection upon interchange of aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". intersects the aScript error: No such module "Check for unknown parameters".-axis at right angles at a = 2nScript error: No such module "Check for unknown parameters"., precisely where the parabola for nScript error: No such module "Check for unknown parameters". is reflected at the aScript error: No such module "Check for unknown parameters".-axis. (The same is of course true for aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". interchanged.)

Albert Fässler and others provide insights into the significance of these parabolas in the context of conformal mappings.[33][34]

Special cases and related equations

The Platonic sequence

The case n = 1Script error: No such module "Check for unknown parameters". of the more general construction of Pythagorean triples has been known for a long time. Proclus, in his commentary to the 47th Proposition of the first book of Euclid's Elements, describes it as follows:

Certain methods for the discovery of triangles of this kind are handed down, one which they refer to Plato, and another to Pythagoras. (The latter) starts from odd numbers. For it makes the odd number the smaller of the sides about the right angle; then it takes the square of it, subtracts unity and makes half the difference the greater of the sides about the right angle; lastly it adds unity to this and so forms the remaining side, the hypotenuse.
...For the method of Plato argues from even numbers. It takes the given even number and makes it one of the sides about the right angle; then, bisecting this number and squaring the half, it adds unity to the square to form the hypotenuse, and subtracts unity from the square to form the other side about the right angle. ... Thus it has formed the same triangle that which was obtained by the other method.

In equation form, this becomes:

aScript error: No such module "Check for unknown parameters". is odd (Pythagoras, c. 540 BC):

side a:side b=a212:side c=a2+12.

aScript error: No such module "Check for unknown parameters". is even (Plato, c. 380 BC):

side a:side b=(a2)21:side c=(a2)2+1

It can be shown that all Pythagorean triples can be obtained, with appropriate rescaling, from the basic Platonic sequence (aScript error: No such module "Check for unknown parameters"., (a2 − 1)/2Script error: No such module "Check for unknown parameters". and (a2 + 1)/2Script error: No such module "Check for unknown parameters".) by allowing aScript error: No such module "Check for unknown parameters". to take non-integer rational values. If aScript error: No such module "Check for unknown parameters". is replaced with the fraction m/nScript error: No such module "Check for unknown parameters". in the sequence, the result is equal to the 'standard' triple generator (2mn, m2n2Script error: No such module "Check for unknown parameters".,m2 + n2Script error: No such module "Check for unknown parameters".) after rescaling. It follows that every triple has a corresponding rational aScript error: No such module "Check for unknown parameters". value which can be used to generate a similar triangle (one with the same three angles and with sides in the same proportions as the original). For example, the Platonic equivalent of (56, 33, 65)Script error: No such module "Check for unknown parameters". is generated by a = m/n = 7/4Script error: No such module "Check for unknown parameters". as (a, (a2 –1)/2, (a2+1)/2) = (56/32, 33/32, 65/32)Script error: No such module "Check for unknown parameters".. The Platonic sequence itself can be derivedScript error: No such module "Unsubst". by following the steps for 'splitting the square' described in Diophantus II.VIII.

The Jacobi–Madden equation

Script error: No such module "Labelled list hatnote". The equation,

a4+b4+c4+d4=(a+b+c+d)4

is equivalent to the special Pythagorean triple,

(a2+ab+b2)2+(c2+cd+d2)2=((a+b)2+(a+b)(c+d)+(c+d)2)2

There is an infinite number of solutions to this equation as solving for the variables involves an elliptic curve. Small ones are,

a,b,c,d=2634,955,1770,5400
a,b,c,d=31764,7590,27385,48150

Equal sums of two squares

One way to generate solutions to a2+b2=c2+d2 is to parametrize a, b, c, d in terms of integers m, n, p, q as follows:[35]

(m2+n2)(p2+q2)=(mpnq)2+(np+mq)2=(mp+nq)2+(npmq)2.

Equal sums of two fourth powers

Given two sets of Pythagorean triples,

(a2b2)2+(2ab)2=(a2+b2)2
(c2d2)2+(2cd)2=(c2+d2)2

the problem of finding equal products of a non-hypotenuse side and the hypotenuse,

(a2b2)(a2+b2)=(c2d2)(c2+d2)

is easily seen to be equivalent to the equation,

a4b4=c4d4

and was first solved by Euler as a,b,c,d=133,59,158,134. Since he showed this is a rational point in an elliptic curve, then there is an infinite number of solutions. In fact, he also found a 7th degree polynomial parameterization.

Descartes' Circle Theorem

For the case of Descartes' circle theorem where all variables are squares,

2(a4+b4+c4+d4)=(a2+b2+c2+d2)2

Euler showed this is equivalent to three simultaneous Pythagorean triples,

(2ab)2+(2cd)2=(a2+b2c2d2)2
(2ac)2+(2bd)2=(a2b2+c2d2)2
(2ad)2+(2bc)2=(a2b2c2+d2)2

There is also an infinite number of solutions, and for the special case when a+b=c, then the equation simplifies to,

4(a2+ab+b2)=d2

with small solutions as a,b,c,d=3,5,8,14 and can be solved as binary quadratic forms.

Almost-isosceles Pythagorean triples

No Pythagorean triples are isosceles, because the ratio of the hypotenuse to either other side is Template:Radic, but [[Square root of 2#Proofs of irrationality|Template:Radic cannot be expressed as the ratio of 2 integers]].

There are, however, right-angled triangles with integral sides for which the lengths of the non-hypotenuse sides differ by one, such as,

32+42=52
202+212=292

and an infinite number of others. They can be completely parameterized as,

(x12)2+(x+12)2=y2

where {x, y} are the solutions to the Pell equation x22y2=1.

If aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". are the sides of this type of primitive Pythagorean triple then the solution to the Pell equation is given by the recursive formula

an=6an1an2+2 with a1=3 and a2=20
bn=6bn1bn22 with b1=4 and b2=21
cn=6cn1cn2 with c1=5 and Template:Tmath.[36]

This sequence of primitive Pythagorean triples forms the central stem (trunk) of the rooted ternary tree of primitive Pythagorean triples.

When it is the longer non-hypotenuse side and hypotenuse that differ by one, such as in

52+122=132
72+242=252

then the complete solution for the primitive Pythagorean triple aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., cScript error: No such module "Check for unknown parameters". is

a=2m+1,b=2m2+2m,c=2m2+2m+1

and

(2m+1)2+(2m2+2m)2=(2m2+2m+1)2

where integer m>0 is the generating parameter.

It shows that all odd numbers (greater than 1) appear in this type of almost-isosceles primitive Pythagorean triple. This sequence of primitive Pythagorean triples forms the right hand side outer stem of the rooted ternary tree of primitive Pythagorean triples.

Another property of this type of almost-isosceles primitive Pythagorean triple is that the sides are related such that

ab+ba=Kc

for some integer K. Or in other words ab+ba is divisible by c such as in

(512+125)/13=18799189.[37]

Fibonacci numbers in Pythagorean triples

Starting with 5, every second Fibonacci number is the length of the hypotenuse of a right triangle with integer sides, or in other words, the largest number in a Pythagorean triple, obtained from the formula (FnFn+3)2+(2Fn+1Fn+2)2=F2n+32. The sequence of Pythagorean triangles obtained from this formula has sides of lengths

(3,4,5), (5,12,13), (16,30,34), (39,80,89), ...

The middle side of each of these triangles is the sum of the three sides of the preceding triangle.[38]

Generalizations

There are several ways to generalize the concept of Pythagorean triples.

Pythagorean nScript error: No such module "Check for unknown parameters".-tuple

Script error: No such module "Labelled list hatnote".

The expression

(m12m22mn2)2+k=2n(2m1mk)2=(m12++mn2)2

is a Pythagorean Template:Mvar-tuple for any tuple of positive integers (m1, ..., mn)Script error: No such module "Check for unknown parameters". with mTemplate:Supsub > mTemplate:Supsub + ... + mTemplate:SupsubScript error: No such module "Check for unknown parameters".. The Pythagorean Template:Mvar-tuple can be made primitive by dividing out by the largest common divisor of its values.

Furthermore, any primitive Pythagorean Template:Mvar-tuple aTemplate:Supsub + ... + aTemplate:Supsub = c2Script error: No such module "Check for unknown parameters". can be found by this approach. Use (m1, ..., mn) = (c + a1, a2, ..., an)Script error: No such module "Check for unknown parameters". to get a Pythagorean Template:Mvar-tuple by the above formula and divide out by the largest common integer divisor, which is 2m1 = 2(c + a1)Script error: No such module "Check for unknown parameters".. Dividing out by the largest common divisor of these (m1, ..., mn)Script error: No such module "Check for unknown parameters". values gives the same primitive Pythagorean Template:Mvar-tuple; and there is a one-to-one correspondence between tuples of setwise coprime positive integers (m1, ..., mn)Script error: No such module "Check for unknown parameters". satisfying mTemplate:Supsub > mTemplate:Supsub + ... + mTemplate:SupsubScript error: No such module "Check for unknown parameters". and primitive Pythagorean Template:Mvar-tuples.

Examples of the relationship between setwise coprime values m and primitive Pythagorean Template:Mvar-tuples include:[39]

m=(1)12=12m=(2,1)32+42=52m=(2,1,1)12+22+22=32m=(3,1,1,1)12+12+12+12=22m=(5,1,1,2,3)12+12+12+22+32=42m=(4,1,1,1,1,2)12+12+12+12+12+22=32m=(5,1,1,1,2,2,2)12+12+12+12+22+22+22=42

Consecutive squares

Since the sum F(k,m)Script error: No such module "Check for unknown parameters". of kScript error: No such module "Check for unknown parameters". consecutive squares beginning with m2Script error: No such module "Check for unknown parameters". is given by the formula,[40]

F(k,m)=km(k1+m)+k(k1)(2k1)6

one may find values (k, m)Script error: No such module "Check for unknown parameters". so that F(k,m)Script error: No such module "Check for unknown parameters". is a square, such as one by Hirschhorn where the number of terms is itself a square,[41]

m=v424v22548,k=v2,F(m,k)=v5+47v48

and v ≥ 5Script error: No such module "Check for unknown parameters". is any integer not divisible by 2 or 3. For the smallest case v = 5Script error: No such module "Check for unknown parameters"., hence k = 25Script error: No such module "Check for unknown parameters"., this yields the well-known cannonball-stacking problem of Lucas,

02+12+22++242=702

a fact which is connected to the Leech lattice.

In addition, if in a Pythagorean nScript error: No such module "Check for unknown parameters".-tuple (n ≥ 4Script error: No such module "Check for unknown parameters".) all addends are consecutive except one, one can use the equation,[42]

F(k,m)+p2=(p+1)2

Since the second power of pScript error: No such module "Check for unknown parameters". cancels out, this is only linear and easily solved for as p=F(k,m)12 though kScript error: No such module "Check for unknown parameters"., mScript error: No such module "Check for unknown parameters". should be chosen so that pScript error: No such module "Check for unknown parameters". is an integer, with a small example being k = 5Script error: No such module "Check for unknown parameters"., m = 1Script error: No such module "Check for unknown parameters". yielding,

12+22+32+42+52+272=282

Thus, one way of generating Pythagorean nScript error: No such module "Check for unknown parameters".-tuples is by using, for various xScript error: No such module "Check for unknown parameters".,[43]

x2+(x+1)2++(x+q)2+p2=(p+1)2,

where q = n–2 and where

p=(q+1)x2+q(q+1)x+q(q+1)(2q+1)612.

Fermat's Last Theorem

Script error: No such module "Labelled list hatnote".

A generalization of the concept of Pythagorean triples is the search for triples of positive integers aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters"., and cScript error: No such module "Check for unknown parameters"., such that an + bn = cnScript error: No such module "Check for unknown parameters"., for some nScript error: No such module "Check for unknown parameters". strictly greater than 2. Pierre de Fermat in 1637 claimed that no such triple exists, a claim that came to be known as Fermat's Last Theorem because it took longer than any other conjecture by Fermat to be proved or disproved. The first proof was given by Andrew Wiles in 1994.

n − 1Script error: No such module "Check for unknown parameters". or nScript error: No such module "Check for unknown parameters". nScript error: No such module "Check for unknown parameters".th powers summing to an nScript error: No such module "Check for unknown parameters".th power

Script error: No such module "Labelled list hatnote". Another generalization is searching for sequences of n + 1Script error: No such module "Check for unknown parameters". positive integers for which the nScript error: No such module "Check for unknown parameters".th power of the last is the sum of the nScript error: No such module "Check for unknown parameters".th powers of the previous terms. The smallest sequences for known values of nScript error: No such module "Check for unknown parameters". are:

  • nScript error: No such module "Check for unknown parameters". = 3: {3, 4, 5; 6}.
  • nScript error: No such module "Check for unknown parameters". = 4: {30, 120, 272, 315; 353}
  • nScript error: No such module "Check for unknown parameters". = 5: {19, 43, 46, 47, 67; 72}
  • nScript error: No such module "Check for unknown parameters". = 7: {127, 258, 266, 413, 430, 439, 525; 568}
  • nScript error: No such module "Check for unknown parameters". = 8: {90, 223, 478, 524, 748, 1088, 1190, 1324; 1409}

For the n = 3Script error: No such module "Check for unknown parameters". case, in which x3+y3+z3=w3, called the Fermat cubic, a general formula exists giving all solutions.

A slightly different generalization allows the sum of (k + 1)Script error: No such module "Check for unknown parameters". nScript error: No such module "Check for unknown parameters".th powers to equal the sum of (nk)Script error: No such module "Check for unknown parameters". nScript error: No such module "Check for unknown parameters".th powers. For example:

  • (n = 3Script error: No such module "Check for unknown parameters".): 13 + 123 = 93 + 103, made famous by Hardy's recollection of a conversation with Ramanujan about the number 1729 being the smallest number that can be expressed as a sum of two cubes in two distinct ways.

There can also exist n − 1Script error: No such module "Check for unknown parameters". positive integers whose nScript error: No such module "Check for unknown parameters".th powers sum to an nScript error: No such module "Check for unknown parameters".th power (though, by Fermat's Last Theorem, not for n = 3)Script error: No such module "Check for unknown parameters".; these are counterexamples to Euler's sum of powers conjecture. The smallest known counterexamples are[44][45][15]

  • n = 4Script error: No such module "Check for unknown parameters".: (95800, 217519, 414560; 422481)
  • n = 5Script error: No such module "Check for unknown parameters".: (27, 84, 110, 133; 144)

Heronian triangle triples

Script error: No such module "Labelled list hatnote".

A Heronian triangle is commonly defined as one with integer sides whose area is also an integer. The lengths of the sides of such a triangle form a Heronian triple (a, b, c)Script error: No such module "Check for unknown parameters". for abcScript error: No such module "Check for unknown parameters".. Every Pythagorean triple is a Heronian triple, because at least one of the legs aScript error: No such module "Check for unknown parameters"., bScript error: No such module "Check for unknown parameters". must be even in a Pythagorean triple, so the area ab/2 is an integer. Not every Heronian triple is a Pythagorean triple, however, as the example (4, 13, 15)Script error: No such module "Check for unknown parameters". with area 24 shows.

If (a, b, c)Script error: No such module "Check for unknown parameters". is a Heronian triple, so is (ka, kb, kc)Script error: No such module "Check for unknown parameters". where kScript error: No such module "Check for unknown parameters". is any positive integer; its area will be the integer that is k2Script error: No such module "Check for unknown parameters". times the integer area of the (a, b, c)Script error: No such module "Check for unknown parameters". triangle. The Heronian triple (a, b, c)Script error: No such module "Check for unknown parameters". is primitive provided a, b, c are setwise coprime. (With primitive Pythagorean triples the stronger statement that they are pairwise coprime also applies, but with primitive Heronian triangles the stronger statement does not always hold true, such as with (7, 15, 20)Script error: No such module "Check for unknown parameters"..) Here are a few of the simplest primitive Heronian triples that are not Pythagorean triples:

(4, 13, 15) with area 24
(3, 25, 26) with area 36
(7, 15, 20) with area 42
(6, 25, 29) with area 60
(11, 13, 20) with area 66
(13, 14, 15) with area 84
(13, 20, 21) with area 126

By Heron's formula, the extra condition for a triple of positive integers (a, b, c)Script error: No such module "Check for unknown parameters". with a < b < cScript error: No such module "Check for unknown parameters". to be Heronian is that

(a2 + b2 + c2)2 − 2(a4 + b4 + c4)Script error: No such module "Check for unknown parameters".

or equivalently

2(a2b2 + a2c2 + b2c2) − (a4 + b4 + c4)Script error: No such module "Check for unknown parameters".

be a nonzero perfect square divisible by 16.

Application to cryptography

Primitive Pythagorean triples have been used in cryptography as random sequences and for the generation of keys.[46]

See also

<templatestyles src="Div col/styles.css"/>

Notes

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "Footnotes".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
  6. Script error: No such module "citation/CS1".
  7. Maor, Eli, The Pythagorean Theorem, Princeton University Press, 2007: Appendix B.
  8. a b c d e f Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1"..
  11. For the nonexistence of solutions where aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". are both square, originally proved by Fermat, see Script error: No such module "citation/CS1".. For the other case, in which cScript error: No such module "Check for unknown parameters". is one of the squares, see Script error: No such module "citation/CS1"..
  12. a b c Script error: No such module "citation/CS1".
  13. Script error: No such module "Footnotes".
  14. Script error: No such module "citation/CS1".
  15. a b Script error: No such module "citation/CS1".
  16. Script error: No such module "citation/CS1"..
  17. This follows immediately from the fact that ab is divisible by twelve, together with the definition of congruent numbers as the areas of rational-sided right triangles. See e.g. Script error: No such module "citation/CS1"..
  18. Script error: No such module "citation/CS1".
  19. a b Script error: No such module "citation/CS1".
  20. Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
  21. H. Darmon and L. Merel. Winding quotients and some variants of Fermat’s Last Theorem, J. Reine Angew. Math. 490 (1997), 81–100.
  22. Script error: No such module "citation/CS1".
  23. a b Script error: No such module "citation/CS1".
  24. Script error: No such module "Template wrapper".
  25. Script error: No such module "citation/CS1".
  26. Script error: No such module "citation/CS1".
  27. Script error: No such module "citation/CS1".
  28. Script error: No such module "citation/CS1".
  29. Script error: No such module "citation/CS1".
  30. Script error: No such module "Footnotes".
  31. Script error: No such module "citation/CS1".
  32. Script error: No such module "citation/CS1". See also Werke, 2:67–148.
  33. 1988 Preprint Template:Webarchive See Figure 2 on page 3., later published as Script error: No such module "citation/CS1".
  34. Script error: No such module "citation/CS1". as PDF
  35. Script error: No such module "citation/CS1".
  36. Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".; Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
  37. Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
  38. Script error: No such module "citation/CS1".
  39. Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
  40. Script error: No such module "citation/CS1".
  41. Script error: No such module "citation/CS1".
  42. Script error: No such module "citation/CS1".
  43. Goehl, John F., Jr., "Triples, quartets, pentads", Mathematics Teacher 98, May 2005, p. 580.
  44. Script error: No such module "citation/CS1".
  45. Script error: No such module "citation/CS1".
  46. Kak, S. and Prabhu, M. Cryptographic applications of primitive Pythagorean triples. Cryptologia, 38:215–222, 2014. [1]

Script error: No such module "Check for unknown parameters".

References

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".

External links

Template:Authority control