{"url":"https://inamori.hateblo.jp/entry/20100604/p1","type":"rich","author_url":"https://blog.hatena.ne.jp/inamori/","width":"100%","height":"190","title":"Project Euler 45","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Finamori.hateblo.jp%2Fentry%2F20100604%2Fp1\" title=\"Project Euler 45 - inamori\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_url":"https://hatena.blog","author_name":"inamori","categories":["F#"],"image_url":null,"version":"1.0","blog_title":"inamori\u2019s diary","published":"2010-06-04 00:00:00","blog_url":"https://inamori.hateblo.jp/","provider_name":"Hatena Blog","description":"http://projecteuler.net/index.php?section=problems&id=45 \u3053\u306e\u554f\u984c\u306f\u307b\u3068\u3093\u3069Project Euler 37\u3068\u540c\u3058\u3067\u3059\u3002 Haskell\u3060\u3068\u7c21\u5358\u306b\u66f8\u3051\u307e\u3059\u3002 polygonal p = [ div (n * ((p - 1) * n + 4 - p)) 2 | n <- [1..] ] coincident (p:ps) (q:qs) | p == q = p:(coincident ps qs) | p < q = coincident ps (q:qs) | p > q = coincident (p:ps) qs main = pr\u2026"}