Script / CSS

G1sUtil.js

G1sBlogger.js

G1sNavigationList.js

G1sCode

Posts List


2012년 4월 14일 토요일

[Project Euler] 45. 오각수와 육각수도 되는, 40755 다음으로 큰 삼각수는?

45. 오각수와 육각수도 되는, 40755 다음으로 큰 삼각수는?

삼각수, 오각수, 육각수는 아래 식으로 구할 수 있습니다.

삼각수 Tn = n (n + 1) / 2 1, 3, 6, 10, 15, ...
오각수 Pn = n (3n − 1) / 2 1, 5, 12, 22, 35, ...
육각수 Hn = n (2n − 1) 1, 6, 15, 28, 45, ...

여기서 T285 = P165 = H143 = 40755 가 됩니다.

오각수와 육각수도 되는, 그 다음으로 큰 삼각수를 구하세요.
Click

44번을 풀었다면 쉽게 구할 수 있는 문제인 듯 하네요.

H(n) = n (n - 1) = 2n (n - 1)/2 = (2n - 1)((2n - 1) + 1)/2 = T(2n - 1)

위 식에 의해 H(n) = T(2n-1) 이므로 P = H 가 같은 경우만 찾으면 됩니다.

P(p) = H(h)
p(3p-1)/2 = h(2h-1)
p(3p-1) = 2h(2h-1)
3p²- p = 4h²- 2h
36p²- 12p = 48h²- 24h
36p²- 12p + 1 = 48h²- 24h + 1
(6p-1)²= 48h²- 24h + 1
6p - 1 = √(48h²- 24h + 1)
6p = √(48h²- 24h + 1) + 1
p = (√(48h²- 24h + 1) + 1)/6

위의 p값이 정수값이 되는 h를 구하면 됩니다.
<script language="Javascript" type="text/javascript">
function p045(){
    for(var h=144; ; h++){
        var p = (Math.sqrt(48*h*h - 24*h + 1) + 1)/6;
        if(p == parseInt(p)) break;
    }
    alert(h*(2*h-1));
}
</script>

댓글 없음:

댓글 쓰기