import Data.List (elemIndex, maximumBy) import Data.Ord (comparing) import Data.Maybe (fromJust) recurringCycle :: Int -> Int recurringCycle d = remainders 1 [] where remainders r rs | r == 0 = 0 | s `elem` rs = 1 + fromJust (elemIndex s rs) | otherwise = remainders ((r * 10) `mod` d) (s : rs) where s = r `mod` d p26 :: Int p26 = fst $ maximumBy (comparing snd) [(n, recurringCycle n) | n <- [1,3..999], n `mod` 5 /= 0]
λ> :set +s λ> p26 983 (0.11 secs, 29,770,480 bytes) λ>
— Me@2025-02-06 08:29:54 AM
.
.
2025.02.06 Thursday (c) All rights reserved by ACHK


You must be logged in to post a comment.