-- NOTE: This implementation is terribly slow...needs to improve.

is_match :: Int -> Bool
is_match x = (length result) == 19
    where
        factors = reverse [2..20]
        result = takeWhile (== 0) [x `mod` i | i <- factors]
is_match :: Int -> Bool
is_match x = (length result) == 19
    where
        factors = reverse [2..20]
        result = takeWhile (== 0) [x `mod` i | i <- factors]
is_match x = (length result) == 19
    where
        factors = reverse [2..20]
        result = takeWhile (== 0) [x `mod` i | i <- factors]