Pythagorean triple
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 ; 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 and is a right triangle, but is not a Pythagorean triple because the square root of 2 is not an integer. Moreover, and do not have an integer common multiple because 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
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".
| Template:Calculator label = | Template:Calculator |
| Template:Calculator label = | Template:Calculator: |
| a = | Template:Calculator |
| b = | Template:Calculator |
| c = | Template:Calculator |
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
form a Pythagorean triple. For example, the integers
generate the primitive triple (3, 4, 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
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
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 assume aScript error: No such module "Check for unknown parameters". is odd. We obtain and hence Then Since is rational, we set it equal to in lowest terms. Thus being the reciprocal of Then solving
for and gives
As 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 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
- 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 m2 − n2Script 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 m2 − n2Script 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 and the full-angle trigonometric values are , , 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
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
where Template:Mvar and Template:Mvar are positive coprime integers, and if Template:Mvar and Template:Mvar are both odd, and otherwise. Equivalently, if Template:Mvar is odd, and 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:
- 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(m − n)Script error: No such module "Check for unknown parameters"., and the radii of the excircles opposite the sides m2 − n2Script 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(m − n)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 because if two sides were integers of perfect powers with equal exponent it would contradict the fact that there are no integer solutions to the Diophantine equation , with , and 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]
- No primitive Pythagorean triangle has an integer altitude from the hypotenuse; that is, every primitive Pythagorean triangle is indecomposable.[23]
- The set of all primitive Pythagorean triples forms a rooted ternary tree in a natural way; see Tree of primitive Pythagorean triples.
- Neither of the acute angles of a Pythagorean triangle can be a rational number of degrees.[24] (This follows from Niven's theorem.)
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 (m – n)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 is a convergent to
- 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
Euclid's formula for a Pythagorean triple
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
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
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
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
Then, it can be shown by basic algebra that the point PScript error: No such module "Check for unknown parameters". has coordinates
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
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 [29] for primitive Pythagorean triples this interior lattice count is The area (by Pick's theorem equal to one less than the interior lattice count plus half the boundary lattice count) equals .
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 and with , odd and Hence there is a 1 to 1 mapping of rationals (in lowest terms) to primitive Pythagorean triples where is in the interval and odd.
The reverse mapping from a primitive triple where to a rational is achieved by studying the two sums and One of these sums will be a square that can be equated to and the other will be twice a square that can be equated to It is then possible to determine the rational
In order to enumerate primitive Pythagorean triples the rational can be expressed as an ordered pair 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
- and gives rationals
- these, in turn, generate primitive triples
Spinors and the modular group
Pythagorean triples can likewise be encoded into a square matrix of the form
A matrix of this form is symmetric. Furthermore, the determinant of XScript error: No such module "Check for unknown parameters". is
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
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
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
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
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
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
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". | 2a − b + 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 + y2 − z2Script 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:
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* := a − biScript 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 z − z* = 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
The real and imaginary parts of this equation give the two formulas:
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.
Using the facts that the Gaussian integers are a Euclidean domain and that for a Gaussian integer p 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 and integers. Since magnitudes multiply in the Gaussian integers, the product must be , which when squared to find a Pythagorean triple must be composite. The contrapositive completes the proof.
Distribution of triples
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 is an integer, then (aScript error: No such module "Check for unknown parameters"., , ) 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 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 , 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]
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):
aScript error: No such module "Check for unknown parameters". is even (Plato, c. 380 BC):
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, m2 − n2Script 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,
is equivalent to the special Pythagorean triple,
There is an infinite number of solutions to this equation as solving for the variables involves an elliptic curve. Small ones are,
Equal sums of two squares
One way to generate solutions to is to parametrize a, b, c, d in terms of integers m, n, p, q as follows:[35]
Equal sums of two fourth powers
Given two sets of Pythagorean triples,
the problem of finding equal products of a non-hypotenuse side and the hypotenuse,
is easily seen to be equivalent to the equation,
and was first solved by Euler as 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,
Euler showed this is equivalent to three simultaneous Pythagorean triples,
There is also an infinite number of solutions, and for the special case when , then the equation simplifies to,
with small solutions as 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,
and an infinite number of others. They can be completely parameterized as,
where {x, y} are the solutions to the Pell equation
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
- with and
- with and
- with 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
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
and
where integer 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
for some integer . Or in other words is divisible by such as in
- .[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 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
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 and primitive Pythagorean Template:Mvar-tuples include:[39]
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]
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]
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,
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]
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 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,
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]
where q = n–2 and where
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 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 (n − k)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 a ≤ b ≤ cScript 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"/>
- Boolean Pythagorean triples problem
- Brahmagupta triangle
- Congruum
- Diophantus II.VIII
- Eisenstein triple
- Euler brick
- Heronian triangle
- Hilbert's theorem 90
- Integer triangle
- Modular arithmetic
- Nonhypotenuse number
- Plimpton 322
- Pythagorean prime
- Pythagorean quadruple
- Quadric
- Tangent half-angle formula
- Trigonometric identity
Notes
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "Footnotes".
- ↑ 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 "Check for unknown parameters".
- ↑ Script error: No such module "citation/CS1".
- ↑ Maor, Eli, The Pythagorean Theorem, Princeton University Press, 2007: Appendix B.
- ↑ a b c d e f Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1"..
- ↑ 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"..
- ↑ a b c Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Footnotes".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1"..
- ↑ 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"..
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".Script error: No such module "Check for unknown parameters".
- ↑ H. Darmon and L. Merel. Winding quotients and some variants of Fermat’s Last Theorem, J. Reine Angew. Math. 490 (1997), 81–100.
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Template wrapper".
- ↑ 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 "Footnotes".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1". See also Werke, 2:67–148.
- ↑ 1988 Preprint Template:Webarchive See Figure 2 on page 3., later published as Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1". as PDF
- ↑ Script error: No such module "citation/CS1".
- ↑ 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".
- ↑ 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 "citation/CS1".Script error: No such module "Check for unknown parameters".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Goehl, John F., Jr., "Triples, quartets, pentads", Mathematics Teacher 98, May 2005, p. 580.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ 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
- Clifford Algebras and Euclid's Parameterization of Pythagorean triples
- Curious Consequences of a Miscopied Quadratic
- Discussion of Properties of Pythagorean triples, Interactive Calculators, Puzzles and Problems
- Generating Pythagorean Triples Using Arithmetic Progressions
- Template:Springer
- Interactive Calculator for Pythagorean Triples
- The negative Pell equation and Pythagorean triples
- Parameterization of Pythagorean Triples by a single triple of polynomials
- Script error: No such module "citation/CS1".
- Pythagorean Triples and the Unit Circle, chap. 2–3, in "A Friendly Introduction to Number Theory" by Joseph H. Silverman, 3rd ed., 2006, Pearson Prentice Hall, Upper Saddle River, NJ, Template:Isbn
- Pythagorean Triples at cut-the-knot Interactive Applet showing unit circle relationships to Pythagorean Triples
- Pythagorean Triplets
- The Remarkable Incircle of a Triangle
- Solutions to Quadratic Compatible Pairs in relation to Pythagorean Triples
- Theoretical properties of the Pythagorean Triples and connections to geometry
- The Trinary Tree(s) underlying Primitive Pythagorean Triples at cut-the-knot
- Script error: No such module "Template wrapper".