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 |