코딩 연습

프로젝트 오일러 138번 본문

project euler with python

프로젝트 오일러 138번

코딩아저씨 2016. 3. 15. 16:07
반응형

Consider the isosceles triangle with base length, \(b=16\), and legs, \(L=17\).



By using the Pythagorean theorem it can be seen that the height of the triangle, \(h=\sqrt{17^2-8^2}=15\), which is one less than the base length.

With \(b=272\) and \(L=305\), we get \(h=273\), which is one more than the base length, and this is the second smallest isosceles triangle with the property that \(h=b \pm 1\).

Find \(\sum L\) for the twelve smallest isosceles triangles for which \(h=b \pm 1\) and \(b\), \(L\) are positive integers.




위 그림과 같은 밑변의 길이가 \(b\) 이고, 길이가 같은 두 변의 길이가 \(L\) 인 이등변삼각형을 생각해 보자. 만약 \(b=16\) 이고 \(L=17\) 이라면 피타고라스의 정리에 의하여 이 삼각형의 높이 \(h\) 는 \(\sqrt{17^2-8^2}=15\) 가 되는데, 이때 밑변의 길이와 높이의 차는 \(1\) 이 된다.

\(b=272,\; L=305\) 일 때도 \(h=273\) 가 되어 밑변의 길이와 높이의 차가 \(1\) 이 된다. 사실 이러한 특징을 갖는 이등변삼각형 중 두 번째로 작은 이등변삼각형이 \(b=272, \; L=305\) 인 이등변삼각형이다.

그렇다면 밑변의 길이와 높이의 차가 \(1\) 인 이등변삼각형을 작은 것부터 큰 것 순으로 나열할 때, 처음 \(12\)개 삼각형에 대한 \(\sum L\) 의 값은 얼마일까? (단, \(b, \; L\) 은 자연수이다.) 



이 문제도 137번과 유사한 문제다. 137번 문제를 숙지하고 와야 한다. 


먼저 다음의 식이 성립함을 알 수 있다. \[\sqrt{L^2 - \left ( \dfrac{b}{4} \right )^2 } = b \pm 1\] 양변을 제곱하여 정리하면 \[4L^2 = 5b^2 \pm 8b +4\]가 된다. 양변에 \(5\) 를 곱하면 \[20L^2 = 25b^2 \pm 40b +16 +4\] \[20L^2 = (5b \pm 4)^2 +4\] \[(5b \pm 4)^2 - 20L^2 = -4\] 이 된다. \(p=5b\pm 4\) 라고 하면 \[p^2-20L^2=-4\] 가 된다. (단, \(p\) 는 \(5\) 로 나누어 \(1\) 또는 \(4\) 가 남는 수이다.) 위 방정식을 만족하는 \((p,\;L)\) 은 \((4,\;1)\) 이라는 것을 알 수 있다. 

또한 \[p^2 -20 L^2 =1\] 을 만족하는 순서쌍 \((p, \;L)\) 을 66번에서 살펴봤던 연분수 전개를 이용한 펠방정식 풀이법으로 구해보면 \[(9, \;2), \;(161, \;36) ,\; (2889, \; 646),\; \cdots \] 의 근을 얻어낼 수 있다. 이후에 137번의 (1) 과 (3) 을 (2)의 식에 대입하여 새로운 근을 얻어내는 방법으로 근을 얻어낼 수 있다. 

이런식으로 \(12\) 개의 근을 구하여 그 합을 계산하면 된다.


반응형

'project euler with python' 카테고리의 다른 글

프로젝트 오일러 140번  (0) 2016.03.15
프로젝트 오일러 139번  (0) 2016.03.15
프로젝트 오일러 137번  (0) 2016.03.15
프로젝트 오일러 136번  (0) 2016.03.15
프로젝트 오일러 135번  (0) 2016.03.15


Comments