Untitled
unknown
haskell
5 months ago
797 B
6
Indexable
import Data.List (nub, permutations) import Data.Char (toLower) import Data.List (intersect) -- Convert number to digits toDigits :: Int -> [Int] toDigits n = map (read . pure) (show n) -- Square a number square :: Int -> Int square n = n * n -- Count unique elements uniqueCount :: [Int] -> Int uniqueCount = length . nub hasThreeDistinctDigits :: Int -> Bool hasThreeDistinctDigits = (==3) . uniqueCount . toDigits . square generator2 :: [(Int,Int,Int,Int,Int,Int,Int,Int)] generator2 = [ (a1,a2,a3,a4,a5,a6,a7,a8) | let candidates = filter hasThreeDistinctDigits [10..31], let validPerms = filter (\xs -> head (drop 3 xs) == minimum xs) (permutations candidates), [a1,a2,a3,a4,a5,a6,a7,a8] <- take 8 <$> validPerms ]
Editor is loading...
Leave a Comment