First perfect square in base n with n unique digits: Difference between revisions
First perfect square in base n with n unique digits (view source)
Revision as of 18:28, 20 May 2020
, 4 years ago→{{header|Haskell}}: Applicative formulation of `digits` turns out, FWIW, to be a little faster.
m (→{{header|Haskell}}: Applicative formulation of `digits` turns out, FWIW, to be a little faster.) |
|||
Line 799:
import qualified Data.Set as Set
import Text.Printf (printf)
digits :: Integral a => a -> a -> [a]
digits b = unfoldr
(((>>) . guard . (0 /=)) <*> (pure . ((,) <$> (`mod` b) <*> (`div` b))))
sequenceForBaseN :: Integral a => a -> [a]
sequenceForBaseN
b = unfoldr (\(v, n) -> Just (v, (v + n, n + 2))) (i ^ 2, i * 2 + 1)
where
i = succ
searchSequence :: Integral a => a -> Maybe a
searchSequence
Line 814 ⟶ 815:
where
digitsSet = Set.fromList [0 .. pred b]
display :: Integer -> Integer -> String
display b n =
main :: IO ()
main = mapM_
|