Problem 45 「三角数, 五角数, 六角数」 †
三角数, 五角数, 六角数は以下のように生成される.
| 三角数 | 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であることが分かる.
次の三角数かつ五角数かつ六角数な数を求めよ.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2045解法
逐次的に計算するだけです。
fp1(N,N1):-N1 is (N*(3*N-1))//2.
fh1(N,N1):-N1 is N*(2*N-1).
search(P,H):-
fp1(P,P1),
fh1(H,H1),
P1=:=H1,
!,
write(P1).
search(P,H):-
fp1(P,P1),
fh1(H,H1),
P1<H1,
!,
P2 is P+1,
search(P2,H).
search(P,H):-
!,
H2 is H+1,
search(P,H2).
main45:-
search(166,144).
0 件のコメント:
コメントを投稿