16 lines
406 B
Lua
16 lines
406 B
Lua
function digits(n)
|
|
if n > 0 then return n % 10, digits(math.floor(n/10)) end
|
|
end
|
|
function sumsq(a, ...)
|
|
return a and a ^ 2 + sumsq(...) or 0
|
|
end
|
|
local happy = setmetatable({true, false, false, false}, {
|
|
__index = function(self, n)
|
|
self[n] = self[sumsq(digits(n))]
|
|
return self[n]
|
|
end } )
|
|
i, j = 0, 1
|
|
repeat
|
|
i, j = happy[j] and (print(j) or i+1) or i, j + 1
|
|
until i == 8
|