aboutsummaryrefslogtreecommitdiff
path: root/challenge-109/laurent-rosenfeld/lua
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2021-04-26 09:15:20 +0100
committerdrbaggy <js5@sanger.ac.uk>2021-04-26 09:15:20 +0100
commit03f28cae3ddea3b08a671dd3f20f3d32777aa4db (patch)
tree7aea1f86e706cf8233d89d704ac2342a0c63d059 /challenge-109/laurent-rosenfeld/lua
parent46b8aecc9397c6211a1e97a7f0638833726294a2 (diff)
parent1ff197d81f941c3dd35d77bec8a0326807e8d2b1 (diff)
downloadperlweeklychallenge-club-03f28cae3ddea3b08a671dd3f20f3d32777aa4db.tar.gz
perlweeklychallenge-club-03f28cae3ddea3b08a671dd3f20f3d32777aa4db.tar.bz2
perlweeklychallenge-club-03f28cae3ddea3b08a671dd3f20f3d32777aa4db.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-109/laurent-rosenfeld/lua')
-rw-r--r--challenge-109/laurent-rosenfeld/lua/ch-2.lua20
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)