Munchausen numbers: Difference between revisions

Content added Content deleted
Line 1,251: Line 1,251:
digit = tonumber(nStr:sub(pos, pos))
digit = tonumber(nStr:sub(pos, pos))
sum = sum + digit ^ digit
sum = sum + digit ^ digit
end
return sum == n
end

-- alternative, faster version based on the C version,
-- avoiding string manipulation, for Lua 5.3 or higher
local function isMunchausen (n)
local sum, digit, acc = 0, 0, n
while acc > 0 do
digit = acc % 10.0
sum = sum + digit ^ digit
acc = acc // 10 -- integer div
end
end
return sum == n
return sum == n