diff options
| author | Abigail <abigail@abigail.be> | 2021-11-23 16:00:43 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-25 17:19:51 +0100 |
| commit | fb39699b31d65405e7d104ee2b1c1c4edcdf51a8 (patch) | |
| tree | e33b7f66d49b274f4a8a322f2651d87d9d400b78 /challenge-140/abigail/lua | |
| parent | fd4849655113ac9706753441de784780cc72c389 (diff) | |
| download | perlweeklychallenge-club-fb39699b31d65405e7d104ee2b1c1c4edcdf51a8.tar.gz perlweeklychallenge-club-fb39699b31d65405e7d104ee2b1c1c4edcdf51a8.tar.bz2 perlweeklychallenge-club-fb39699b31d65405e7d104ee2b1c1c4edcdf51a8.zip | |
Solutions for week 140, part 1.
Diffstat (limited to 'challenge-140/abigail/lua')
| -rw-r--r-- | challenge-140/abigail/lua/ch-1.lua | 28 | ||||
| -rw-r--r-- | challenge-140/abigail/lua/ch-2.lua | 30 |
2 files changed, 58 insertions, 0 deletions
diff --git a/challenge-140/abigail/lua/ch-1.lua b/challenge-140/abigail/lua/ch-1.lua new file mode 100644 index 0000000000..b0ad7ae3fd --- /dev/null +++ b/challenge-140/abigail/lua/ch-1.lua @@ -0,0 +1,28 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1.lua < input-file +-- + +function dec2bin (dec) + local bin = {} + local out = "" + while dec > 0 do + bin [#bin + 1] = dec % 2 + dec = math . floor (dec / 2) + end + for i = #bin, 1, -1 do + out = out .. bin [i] + end + return out +end + + +for line in io . lines () do + _, _, a, b = line : find ("([01]+)%s+([01]+)") + print (dec2bin (tonumber (a, 2) + tonumber (b, 2))) +end diff --git a/challenge-140/abigail/lua/ch-2.lua b/challenge-140/abigail/lua/ch-2.lua new file mode 100644 index 0000000000..601fc35041 --- /dev/null +++ b/challenge-140/abigail/lua/ch-2.lua @@ -0,0 +1,30 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-2.lua < input-file +-- + +for line in io . lines () do + local _, _, i, j, k = line : find ("([0-9]+)%s+([0-9]+)%s+([0-9]+)") + i = tonumber (i) + j = tonumber (j) + k = tonumber (k) + + local n = 0 + while k > 0 do + n = n + 1 + local s = math . floor (math . sqrt (n)) + for d = 1, s do + if n % d == 0 then + if d <= i and n / d <= j then k = k - 1 end + if d <= j and n / d <= i then k = k - 1 end + if n == d * d then k = k + 1 end + end + end + end + print (n) +end |
