aboutsummaryrefslogtreecommitdiff
path: root/challenge-041/stuart-little/lua/ch-1.lua
diff options
context:
space:
mode:
authorchirvasitua <chirvasitua@gmail.com>2021-07-17 08:45:47 -0400
committerchirvasitua <chirvasitua@gmail.com>2021-07-17 08:45:47 -0400
commitface9b611f6e01eb91f746b0f4bbbfe93d095c60 (patch)
tree8b241f2119705f127329a18ff1d4b52fedfc38e5 /challenge-041/stuart-little/lua/ch-1.lua
parenta29819346ac57e5390e3816106aaeb7989940dcf (diff)
downloadperlweeklychallenge-club-face9b611f6e01eb91f746b0f4bbbfe93d095c60.tar.gz
perlweeklychallenge-club-face9b611f6e01eb91f746b0f4bbbfe93d095c60.tar.bz2
perlweeklychallenge-club-face9b611f6e01eb91f746b0f4bbbfe93d095c60.zip
1st commit on 041_lua
Diffstat (limited to 'challenge-041/stuart-little/lua/ch-1.lua')
-rwxr-xr-xchallenge-041/stuart-little/lua/ch-1.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-041/stuart-little/lua/ch-1.lua b/challenge-041/stuart-little/lua/ch-1.lua
new file mode 100755
index 0000000000..3f0f2ec97a
--- /dev/null
+++ b/challenge-041/stuart-little/lua/ch-1.lua
@@ -0,0 +1,33 @@
+#!/usr/bin/env lua
+
+-- run <script> <number of attractive numbers to see>
+
+function isPrime(n)
+ if n<2 then return false end
+ for d=2,math.sqrt(n) do
+ if n%d==0 then return false end
+ end
+ return true
+end
+
+function prFact(n)
+ local factStr=io.popen(("factor %d"):format(n)):read():match(":%s+(.*)")
+ local facts={}
+ for fact in factStr:gmatch("(%S+)") do
+ table.insert(facts,tonumber(fact))
+ end
+ return facts
+end
+
+function isAtt(n)
+ return isPrime(#(prFact(n)))
+end
+
+local run,nr=2,0
+while nr<tonumber(arg[1]) do
+ if isAtt(run) then
+ print(run)
+ nr=nr+1
+ end
+ run=run+1
+end