diff options
Diffstat (limited to 'challenge-241/deadmarshal/lua/ch-2.lua')
| -rw-r--r-- | challenge-241/deadmarshal/lua/ch-2.lua | 21 |
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}) + |
