Integer roots: Difference between revisions

m
→‎{{header|Haskell}}: Pruned out a redundant test.
(→‎{{header|Haskell}}: Added an applicative variant)
m (→‎{{header|Haskell}}: Pruned out a redundant test.)
Line 398:
<lang haskell>integerRoot :: Integer -> Integer -> Integer
integerRoot n x =
go $ iterate ((`div` n) . ((+) <$>. (pn *) <*> (x `div`) . (^ pn))) 1
where
pn = pred n
go (x:xs@(y:z:_))
| x == y || x == z = min y z
| otherwise = go xs
 
9,655

edits