Jump to content

Module:Collatz sequence Generator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by R1F4T (talk | contribs) at 09:17, 27 September 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
--{{#invoke:Sandbox/R1F4T|collatz|10}}




local p = {}

function p.collatz(frame)
    local n = tonumber(frame.args[1])  -- Get input from the template argument
    if not n or n < 1 then
        return "Please provide a positive integer."
    end

    local sequence = {"'''"..n.."'''"}  -- Start the sequence with the initial number bolded

    while n > 1 do
        if n % 2 == 0 then
            n = n / 2
        else
            n = 3 * n + 1
        end
        table.insert(sequence, "&#8594; " .. n)  -- Add each new number with an arrow
    end

    return table.concat(sequence, " ")  -- Return the formatted sequence
end

return p