diff options
| author | chirvasitua <chirvasitua@gmail.com> | 2021-07-17 08:45:47 -0400 |
|---|---|---|
| committer | chirvasitua <chirvasitua@gmail.com> | 2021-07-17 08:45:47 -0400 |
| commit | face9b611f6e01eb91f746b0f4bbbfe93d095c60 (patch) | |
| tree | 8b241f2119705f127329a18ff1d4b52fedfc38e5 /challenge-041/stuart-little/lua/ch-1.lua | |
| parent | a29819346ac57e5390e3816106aaeb7989940dcf (diff) | |
| download | perlweeklychallenge-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-x | challenge-041/stuart-little/lua/ch-1.lua | 33 |
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 |
