본문 바로가기

교육/수알못시리즈

피타고라스 삼조 Pythagorean triple

피타고라스 삼조라는게

피타고라스 정리 a^2 + b^2 = c^2 에서

a, b, c 모두 정수인 이 조를 갖다가 피타고라스 삼조라고 한다.

예를들어 3, 4, 5 가 피타고라스 삼조에 해당한다.

이것 말고도 다른 조들도 있긴 하다.

예를 들어 5, 12, 13 도 피타고라스 삼조에 속한다.

사실, 일일히 계산해서 찾을 수는 없는 일이다.

그렇다면 일반화를 하면, 수만 대입하면 되니까 찾기 쉬울 것이다.

피타고라스 수가 되는 조건을 생각해보자.

a, b, c 가 피타고라스 삼조라고 해보자.

그러면, a^2 + b^2 = c^2 이다.

여기에서 식을 달리해보자.

a^2 = c^2 - b^2

= (c-b)(c+b)

여기서 a^2 를 이항시켜 보자.

1 = (c-b)(c+b) / a^2

= ( (c-b)/a )* ( (c+b)/a )

여기에서 (c-b) / a = n/m 이라고 하면,

(c+b) / a = m/n 이 된다.

여기서 m과 n은 정수이다.

이 값들을 더하면,

m/n + n/m = 2c / a

m/n - n/m = 2b / a

이렇게 되고 이걸 조금 형태를 바꿔보자.

( m^2 + n^2 ) / 2mn = c / a

( m^2 - n^2 ) / 2mn = b / a

여기서 a, b, c 의 비율은 알 수 있다.

a : b : c = 2mn : ( m^2 - n^2 ) : ( m^2 + n^2)

그러면 피타고라스 삼조를

( a, b, c ) = ( 2mn , ( m^2 - n^2 ) , ( m^2 + n^2) )

이런 식으로 만들 수 있을 것이다.

이게 피타고라스 삼조의 일반항이다.

굳이 가장 작은 수부터 크기 순서로 넣고 싶다면,

( a, b, c ) = ( min ( 2mn, ( m^2 - n^2 )) , max ( 2mn, ( m^2 - n^2 )) , ( m^2 + n^2) )

로 짜면 되겠다.

min ( a, b) 는 a, b 중 작은 수를 뜻하며,

max ( a, b) 는 a, b 중 큰 수를 뜻한다.

굳이 자연수를 삼조의 조합으로 넣고싶다면,

0 < n < m

의 조건을 넣으면 될 것이다.

이렇게 해서 자연수의 피타고라스 삼조를 찾아낼 수는 있다.

찾아낸 피타고라스 삼조에서 어떤 자연수를 곱해도 피타고라스 삼조가 된다.

a,b,c가 피타고라스 삼조라고 할 때, 자연수 k를 곱해서

ka, kb, kc 가 삼조가 되는지를 보겠다.

(ka)^2 + (kb)^2 = k^2 * a^2 + k^2 * b^2

= k^2 (a^2 + b^2)

= k^2 * c^2

= (kc)^2

즉, a, b, c 가 피타고라스 삼조이면,

ka, kb, kc 가 피타고라스 삼조가 된다.

하나의 조가 삼조일 때, 정수를 곱하면 삼조가 나오게 됨을 알았다.

a, b, c 와 ka, kb, kc 를 같은 종류라고 했을 때,

해당 종류 중에서 가장 작은 삼조를 찾고 싶다.

그럴려면 피타고라스 삼조가 a, b, c 일 때,

a와 b는 서로소가 되어야 할 것이다.

a, b 모두가 짝수가 되면 안된다는 얘기이기도 하다.

모두 홀수가 될 수 있을지 확인해보자.

a = 2k + 1, k는 임의의 정수

b = 2l + 1, l은 임의의 정수

라고 할 때,

a^2 + b^2 = ( 2k + 1 )^2 + ( 2l + 1) ^2

= 4k^2 + 4k+1 + 4l^2 + 4l + 1

= 4k^2 + 4k + 4l^2 + 4l +2

= 2( 2k^2 + 2k + 2l^2 + 2l +1 ) = c^2

이 때 c^2 은 2의 배수이므로, c^2 은 2^2 = 4 의 배수가 되어야 한다.

그렇다면 괄호 안의 수도 짝수가 되야 할 것이다.

하지만, 괄호안의 수 2k^2 + 2k + 2l^2 + 2l +1 는

2(k^2 + k + l^2 + l ) + 1 이므로 홀수가 되므로, 모순이다.

즉, a, b가 모두 홀수 일 때도 피타고라스 삼조를 만들 수 없다.

피타고라스 삼조가 될 수 있는 조건은

a와 b 중 하나는 홀수, 하나는 짝수 이면서, a, b 는 공약수가 없는 서로소가 되어야 한다.

그러면 c는 홀수가 되어야 할 것이다.

홀수의 제곱은 홀수, 짝수의 제곱은 짝수이고

홀수와 짝수를 더한 결과는 홀수가 되기 때문이다.

( a, b, c ) = ( min ( 2mn, ( m^2 - n^2 )) , max ( 2mn, ( m^2 - n^2 )) , ( m^2 + n^2) )

0 < n < m

이 조건에서

m과 n이 공약수가 있다고 하면,

m = kx , n=ky

m^2 - n^2 = (kx)^2 - (ky)^2

= k^2 * ( x^2 - y^2)

2mn = 2k^2 * xy

2mn 과 m^2 - n^2 가 공약수가 있어서 서로소가 안된다.

그러므로 m과 n이 서로소여야 한다.

그리고 2mn이 짝수이므로, m^2 - n^2 는 홀수여야 한다.

m^2 - n^2 = ( m+n)(m-n)

m, n 에서 하나는 홀수 하나는 짝수여야 한다.

즉, m, n 둘은 서로소 관계이며, 하나는 홀수 하나는 짝수여야 한다.

원시 피타고라스 삼조 몇 개 조를 표로 만들어 보았다.

m

n

a

b

c

2

1

3

4

5

3

2

5

12

13

4

1

8

15

17

4

3

7

24

25

5

2

20

21

29

5

4

9

40

41

6

1

12

35

37

6

5

11

60

61

7

2

28

45

53

7

4

33

56

65

7

6

13

84

85

8

1

16

63

65

8

3

48

55

73

8

5

39

80

89

8

7

15

112

113

9

2

36

77

85

9

4

65

72

97

9

8

17

144

145

10

1

20

99

101

10

3

60

91

109

10

7

51

140

149

10

9

19

180

181

11

2

44

117

125

11

4

88

105

137

11

6

85

132

157

11

8

57

176

185

11

10

21

220

221

12

1

24

143

145

12

5

119

120

169

12

7

95

168

193

12

11

23

264

265