Page History: Project Euler Comes to Azeroth
Compare Page Revisions
Page Revision: 2008/04/24 23:36
Intro
I joked with my friend Dustin about creating solutions to the Project Euler problems using LUA (and running them in WoW). Here's where I'll post those solutions as I finish them.
I'll try to generalize my solutions where I see fit. For example, I added a parameter to Problem 1 to set the upper limit of 1000, but I did not parameterize the 3 and 5, etc.
Problem 1
function ProjectEuler:OnEnable()
ProjectEuler:Problem001(1000)
end
function ProjectEuler:Problem001(upperLimit)
self:Print("Sum of all numbers less than "
.. upperLimit .. " that are divisible by 3 or 5")
local f = function(factor)
local n = math.ceil(upperLimit / factor)
return n * (n-1) * factor / 2
end
local result = f(3) + f(5) - f(15)
self:Print(result)
end
Problem 2
function ProjectEuler:Problem002(upperLimit)
self:Print("Sum of all even numbers less than " .. upperLimit .. " in Fibonacci Sequence")
local result, x1, x2 = 0, 1, 2
local f = function(t1, t2)
return t2, t1+t2
end
while x2 < upperLimit
do
self:Print("adding "..x2)
result = result + x2
x1,x2 = f(f(f(x1,x2)))
end
self:Print(result)
end