aboutsummaryrefslogtreecommitdiff
path: root/challenge-241/deadmarshal/lua/ch-2.lua
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-241/deadmarshal/lua/ch-2.lua')
-rw-r--r--challenge-241/deadmarshal/lua/ch-2.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/challenge-241/deadmarshal/lua/ch-2.lua b/challenge-241/deadmarshal/lua/ch-2.lua
new file mode 100644
index 0000000000..53e21976d0
--- /dev/null
+++ b/challenge-241/deadmarshal/lua/ch-2.lua
@@ -0,0 +1,21 @@
+#!/usr/bin/env lua
+
+local function count_factors(n)
+ local c,count = 2,0
+ while n > 1 do
+ if n % c == 0 then n = n // c count = count + 1 else c = c + 1 end
+ end
+ return count
+end
+
+local function prime_order(t)
+ assert(type(t) == 'table','t must be a table!')
+ table.sort(t,function(a,b)
+ local fa,fb = count_factors(a),count_factors(b)
+ return fa == fb and a < b or fa < fb
+ end)
+ return table.concat(t,',')
+end
+
+print(prime_order{11,8,27,4})
+