aboutsummaryrefslogtreecommitdiff
path: root/challenge-125/stuart-little/lua/ch-1.lua
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-125/stuart-little/lua/ch-1.lua')
-rwxr-xr-xchallenge-125/stuart-little/lua/ch-1.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-125/stuart-little/lua/ch-1.lua b/challenge-125/stuart-little/lua/ch-1.lua
new file mode 100755
index 0000000000..5358490334
--- /dev/null
+++ b/challenge-125/stuart-little/lua/ch-1.lua
@@ -0,0 +1,27 @@
+#!/usr/bin/env lua
+
+-- run <script> <number>
+
+function trps(n)
+ local triples={}
+ for i=1,math.floor((n+1)/2) do
+ local sqDif=math.floor(math.sqrt(n^2-i^2))
+ if i<n and i^2+sqDif^2==n^2 then table.insert(triples,{i,sqDif,n}) end
+ end
+ for i=1,n-1 do
+ if n^2 % i == 0 and i%2 == (math.floor(n^2/i))%2 then
+ local s = math.floor(n^2/i)
+ table.insert(triples,{math.floor((s-i)/2), n, math.floor((s+i)/2)})
+ end
+ end
+ return triples
+end
+
+local sol = trps(tonumber(arg[1]))
+if #sol>0 then
+ for _,v in ipairs(sol) do
+ print(table.unpack(v))
+ end
+ os.exit()
+end
+print(-1)