diff options
Diffstat (limited to 'challenge-109/laurent-rosenfeld/lua/ch-2.lua')
| -rw-r--r-- | challenge-109/laurent-rosenfeld/lua/ch-2.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-109/laurent-rosenfeld/lua/ch-2.lua b/challenge-109/laurent-rosenfeld/lua/ch-2.lua new file mode 100644 index 0000000000..e972de6a62 --- /dev/null +++ b/challenge-109/laurent-rosenfeld/lua/ch-2.lua @@ -0,0 +1,20 @@ +local function check_square (p) + sum = p[1] + p[2] + return p[2] + p[3] + p[4] == sum and + p[4] + p[5] + p[6] == sum and + p[6] + p[7] == sum +end + +local function permute(perm, n) + if n == 0 and check_square(perm) then + print( table.concat(perm, ' ') ) + else + for i = 1, n do + perm[i], perm[n] = perm[n], perm[i] + permute(perm, n - 1) + perm[i], perm[n] = perm[n], perm[i] + end + end +end + +permute({1,2,3,4,5,6,7}, 7) |
