19 lines
517 B
Haskell
19 lines
517 B
Haskell
import Data.List (intercalate)
|
|
import Data.Maybe (maybe)
|
|
import Safe (headMay)
|
|
|
|
maybeBabbage :: Integer -> Maybe Integer
|
|
maybeBabbage upperLimit =
|
|
headMay
|
|
(filter ((269696 ==) . flip rem 1000000) ((^ 2) <$> [1 .. upperLimit]))
|
|
|
|
main :: IO ()
|
|
main = do
|
|
let upperLimit = 100000
|
|
putStrLn $
|
|
maybe
|
|
(intercalate (show upperLimit) ["No such number found below ", " ..."])
|
|
(intercalate " ^ 2 -> " .
|
|
fmap show . (<*>) [floor . sqrt . fromInteger, id] . pure)
|
|
(maybeBabbage upperLimit)
|