31 lines
597 B
Lua
31 lines
597 B
Lua
function hailstone( n, print_numbers )
|
|
local n_iter = 1
|
|
|
|
while n ~= 1 do
|
|
if print_numbers then print( n ) end
|
|
if n % 2 == 0 then
|
|
n = n / 2
|
|
else
|
|
n = 3 * n + 1
|
|
end
|
|
|
|
n_iter = n_iter + 1
|
|
end
|
|
if print_numbers then print( n ) end
|
|
|
|
return n_iter;
|
|
end
|
|
|
|
hailstone( 27, true )
|
|
|
|
max_i, max_iter = 0, 0
|
|
for i = 1, 100000 do
|
|
num = hailstone( i, false )
|
|
if num >= max_iter then
|
|
max_i = i
|
|
max_iter = num
|
|
end
|
|
end
|
|
|
|
print( string.format( "Needed %d iterations for the number %d.\n", max_iter, max_i ) )
|