local number = 8
local power = 3
-- ^ always gives a float, even for integers
local result1 = number ^ power
-- result1 = 512.0
local result1_type = math.type(result1)
-- result1_type = float
-- Back to an integer, if it is whole
local result2 = math.tointeger(result1)
-- result2 = 512
-- No modular pow(): take the remainder after
local result3 = result2 % 100
-- result3 = 12
-- A negative power gives a fraction
local result4 = number ^ -1
-- result4 = 0.125
-- ^ binds tighter than unary minus: -(2 ^ 2)
local result5 = -2 ^ 2
-- result5 = -4.0
print("result1 = " .. result1)
print("result1_type = " .. result1_type)
print("result2 = " .. result2)
print("result3 = " .. result3)
print("result4 = " .. result4)
print("result5 = " .. result5)