54 lines
1.1 KiB
Lua
54 lines
1.1 KiB
Lua
function isHumble(n)
|
|
local n2 = math.floor(n)
|
|
|
|
if n2 <= 1 then
|
|
return true
|
|
end
|
|
if n2 % 2 == 0 then
|
|
return isHumble(n2 / 2)
|
|
end
|
|
if n2 % 3 == 0 then
|
|
return isHumble(n2 / 3)
|
|
end
|
|
if n2 % 5 == 0 then
|
|
return isHumble(n2 / 5)
|
|
end
|
|
if n2 % 7 == 0 then
|
|
return isHumble(n2 / 7)
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function main()
|
|
local limit = 10000
|
|
local humble = {0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
local count = 0
|
|
local num = 1
|
|
|
|
while count < limit do
|
|
if isHumble(num) then
|
|
local buffer = string.format("%d", num)
|
|
local le = string.len(buffer)
|
|
if le > 9 then
|
|
break
|
|
end
|
|
humble[le] = humble[le] + 1
|
|
|
|
if count < 50 then
|
|
io.write(num .. " ")
|
|
end
|
|
count = count + 1
|
|
end
|
|
num = num + 1
|
|
end
|
|
print("\n")
|
|
|
|
print("Of the first " .. count .. " humble numbers:")
|
|
for num=1,9 do
|
|
print(string.format("%5d have %d digits", humble[num], num))
|
|
end
|
|
end
|
|
|
|
main()
|