
--
-- + factorize n => [(a, i), (b, j), (c, l) ...] の時、
--   phi n = n * (1 - 1 / a) * (1 - 1 / b) * (1 - 1 / c) * ...
--         = n * (a - 1) / a * (b - 1) / b * (c - 1) / c * ...
--         = a ^ 
isqrt :: Integral a => a -> a
isqrt = truncate . sqrt . fromIntegral
isqrt = truncate . sqrt . fromIntegral