import Data.List ( delete ) fac :: (Eq t, Num t) => t -> t fac n = f n 1 where f 0 acc = acc f m acc = f (m - 1) (m * acc) perms :: Eq a => [a] -> Int -> [a] -> [a] perms [] _ acc = reverse acc perms xs n acc = perms (delete x xs) (mod n m) (x : acc) where m = fac $ length xs - 1 y = div n m x = xs !! y p24 :: [Char] p24 = perms "0123456789" 999999 []
λ> :set +s λ> p24 "2783915460" (0.02 secs, 121,968 bytes) λ>
— Me@2024-11-18 07:22:15 PM
.
.
2024.11.19 Tuesday (c) All rights reserved by ACHK


You must be logged in to post a comment.