Juggler sequence: Difference between revisions

→‎{{header|Haskell}}: added solution
(→‎{{header|Haskell}}: added solution)
Line 552:
604,398,963 327 172 640,556,693
</pre>
 
=={{header|Haskell}}==
 
Integer square root is computed as in [[Isqrt_(integer_square_root)_of_X#Haskell]]
 
<lang haskell>import Text.Printf
import Data.List
 
juggler :: Integer -> [Integer]
juggler = takeWhile (> 1) . iterate (\x -> if odd x
then isqrt (x*x*x)
else isqrt x)
 
task :: Integer -> IO ()
task n = printf s n (length ns + 1) (i :: Int) (showMax m)
where
ns = juggler n
(m, i) = maximum $ zip ns [0..]
s = "n = %d length = %d maximal value at = %d (%s)\n"
showMax n = let s = show n
in if n > 10^100
then show (length s) ++ " digits"
else show n
 
main = do
mapM_ task [20..39]
putStrLn "\nTough guys\n"
mapM_ task [ 113, 173, 193, 2183, 11229, 15065, 15845, 30817 ]</lang>
 
<pre>n = 20 length = 3 maximal value at = 0 (20)
n = 21 length = 10 maximal value at = 4 (140)
n = 22 length = 3 maximal value at = 0 (22)
n = 23 length = 10 maximal value at = 1 (110)
n = 24 length = 3 maximal value at = 0 (24)
n = 25 length = 11 maximal value at = 3 (52214)
n = 26 length = 7 maximal value at = 3 (36)
n = 27 length = 7 maximal value at = 1 (140)
n = 28 length = 7 maximal value at = 3 (36)
n = 29 length = 10 maximal value at = 1 (156)
n = 30 length = 7 maximal value at = 3 (36)
n = 31 length = 7 maximal value at = 1 (172)
n = 32 length = 7 maximal value at = 3 (36)
n = 33 length = 8 maximal value at = 2 (2598)
n = 34 length = 7 maximal value at = 3 (36)
n = 35 length = 8 maximal value at = 2 (2978)
n = 36 length = 4 maximal value at = 0 (36)
n = 37 length = 18 maximal value at = 8 (24906114455136)
n = 38 length = 4 maximal value at = 0 (38)
n = 39 length = 15 maximal value at = 3 (233046)
 
Tough guys
 
n = 113 length = 17 maximal value at = 9 (202924588924125339424550328)
n = 173 length = 33 maximal value at = 17 (4450608860210678234719664930918817118564659064289879586228390154864378511410864886)
n = 193 length = 74 maximal value at = 47 (271 digits)
n = 2183 length = 73 maximal value at = 32 (5929 digits)
n = 11229 length = 102 maximal value at = 54 (8201 digits)
n = 15065 length = 67 maximal value at = 25 (11723 digits)
n = 15845 length = 140 maximal value at = 43 (23889 digits)
n = 30817 length = 94 maximal value at = 39 (45391 digits)</pre>
 
=={{header|Julia}}==
Anonymous user