aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <tyler.wardhaugh@gmail.com>2020-11-05 14:51:44 -0800
committerTyler Wardhaugh <tyler.wardhaugh@gmail.com>2020-11-06 16:11:02 -0800
commitc922378a3971e2cc4db090a618cdbaf497a00a2a (patch)
tree02a7ab5acfccc882f0d7ef861f3d9f6e7253f211
parent0e48f28c59973db242fb582595c59f7eadb89493 (diff)
downloadperlweeklychallenge-club-c922378a3971e2cc4db090a618cdbaf497a00a2a.tar.gz
perlweeklychallenge-club-c922378a3971e2cc4db090a618cdbaf497a00a2a.tar.bz2
perlweeklychallenge-club-c922378a3971e2cc4db090a618cdbaf497a00a2a.zip
Ch85 (Lua): Task 2
-rwxr-xr-xchallenge-085/tyler-wardhaugh/lua/ch-2.lua22
-rwxr-xr-xchallenge-085/tyler-wardhaugh/lua/test.lua9
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-085/tyler-wardhaugh/lua/ch-2.lua b/challenge-085/tyler-wardhaugh/lua/ch-2.lua
new file mode 100755
index 0000000000..6af287ab8d
--- /dev/null
+++ b/challenge-085/tyler-wardhaugh/lua/ch-2.lua
@@ -0,0 +1,22 @@
+#!/usr/bin/env lua
+
+local t2 = {}
+
+function t2.has_power_expr(n)
+ local endpoint = function(x) return 1 + math.floor(math.log(n, x)) end
+ for a = 2,endpoint(2) do
+ for b = 2,endpoint(a) do
+ if n == a ^ b then
+ return 1
+ end
+ end
+ end
+
+ return 0
+end
+
+function t2.run(args)
+ print(t2.has_power_expr(tonumber(args[1])))
+end
+
+return t2
diff --git a/challenge-085/tyler-wardhaugh/lua/test.lua b/challenge-085/tyler-wardhaugh/lua/test.lua
index 4577757e03..fdac1e33d8 100755
--- a/challenge-085/tyler-wardhaugh/lua/test.lua
+++ b/challenge-085/tyler-wardhaugh/lua/test.lua
@@ -18,3 +18,12 @@ describe("Task 1, Triplet Sum", function()
assert.are.same(1, t1.find_triplet_sum(big))
end)
end)
+
+describe("Task 2, Power of Two Integers", function()
+ local t2 = require'ch-2'
+ it("produces correct results for the examples", function()
+ assert.are.same(1, t2.has_power_expr(8))
+ assert.are.same(0, t2.has_power_expr(15))
+ assert.are.same(1, t2.has_power_expr(125))
+ end)
+end)