Problem 195

Inscribed circles of triangles with one angle of 60 degrees
Problem 195 - Project Euler
前にやった問題で似たようなものがあった(たしか,トリチェリの三角形だった気がする).
はじめは,外接円だと思っていた.

import Control.Monad (guard)

p195 r = sum $ do
           m <- [1..floor u]
           d <- [1..min (m-1).floor $ u / fromIntegral m]
           guard $ gcd m d == 1
           return.floor.((/) u).fromIntegral $ if mod (d+2*m) 3 == 0 then m * d
                                               else 3 * m * d
    where u = fromIntegral (2*r) * sqrt 3

main = print.p195 $ 1053779

あんま,速くない.
だけど,短かいから,いいか.