From a9419595b246ec2ba94db259326024b980513dc3 Mon Sep 17 00:00:00 2001 From: Abigail Date: Mon, 13 Dec 2021 13:22:04 +0100 Subject: Perl solutions for a boring week 143. --- challenge-143/abigail/README.md | 4 ++++ challenge-143/abigail/perl/ch-1.pl | 1 + challenge-143/abigail/perl/ch-2.pl | 33 +++++++++++++++++++++++++++++++++ challenge-143/abigail/t/ctest.ini | 8 ++++++++ challenge-143/abigail/t/input-1-1 | 2 ++ challenge-143/abigail/t/input-2-1 | 3 +++ challenge-143/abigail/t/output-1-1.exp | 2 ++ challenge-143/abigail/t/output-2-1.exp | 3 +++ 8 files changed, 56 insertions(+) create mode 100644 challenge-143/abigail/perl/ch-1.pl create mode 100644 challenge-143/abigail/perl/ch-2.pl create mode 100644 challenge-143/abigail/t/ctest.ini create mode 100644 challenge-143/abigail/t/input-1-1 create mode 100644 challenge-143/abigail/t/input-2-1 create mode 100644 challenge-143/abigail/t/output-1-1.exp create mode 100644 challenge-143/abigail/t/output-2-1.exp diff --git a/challenge-143/abigail/README.md b/challenge-143/abigail/README.md index d589af7261..aa835b7f1e 100644 --- a/challenge-143/abigail/README.md +++ b/challenge-143/abigail/README.md @@ -3,3 +3,7 @@ ## Part 1 * [Perl](perl/ch-1.pl) + +## Part 2 + +* [Perl](perl/ch-2.pl) diff --git a/challenge-143/abigail/perl/ch-1.pl b/challenge-143/abigail/perl/ch-1.pl new file mode 100644 index 0000000000..8ae1d21ccb --- /dev/null +++ b/challenge-143/abigail/perl/ch-1.pl @@ -0,0 +1 @@ +use 5.01;say eval for <> # Maybe a challenge for language without eval. Not Perl diff --git a/challenge-143/abigail/perl/ch-2.pl b/challenge-143/abigail/perl/ch-2.pl new file mode 100644 index 0000000000..2109647bf2 --- /dev/null +++ b/challenge-143/abigail/perl/ch-2.pl @@ -0,0 +1,33 @@ +#!/opt/perl/bin/perl + +use 5.032; + +use strict; +use warnings; +no warnings 'syntax'; + +use experimental 'signatures'; +use experimental 'lexical_subs'; + +# +# Run as: perl ch-2.pl < input-file +# + +# +# And for the fourth week in succession we're solving need the +# majority of the problem by getting the divisors of a number. +# +# Perhaps it is time to say: +# "I'm completely out of ideas, let's skip this week". +# +# Big Yawn +# + +use Math::Prime::Util qw [divisors]; + +while (my $n = <>) { + # Put sum of divisor pairs in hash. + my %s = map {$_ + $n / $_ => 1} divisors 0 + $n; + # Any difference of 1? + say grep ({$s {$_ - 1}} keys %s) ? 1 : 0; +} diff --git a/challenge-143/abigail/t/ctest.ini b/challenge-143/abigail/t/ctest.ini new file mode 100644 index 0000000000..575704342b --- /dev/null +++ b/challenge-143/abigail/t/ctest.ini @@ -0,0 +1,8 @@ +# +# Configuration file for running tests, using ctest. +# See https://github.com/Abigail/Misc/blob/master/ctest +# + +[names] +1-1 = Given Examples +2-1 = Given Examples diff --git a/challenge-143/abigail/t/input-1-1 b/challenge-143/abigail/t/input-1-1 new file mode 100644 index 0000000000..01dd3f8720 --- /dev/null +++ b/challenge-143/abigail/t/input-1-1 @@ -0,0 +1,2 @@ +10 + 20 - 5 +(10 + 20 - 5) * 2 diff --git a/challenge-143/abigail/t/input-2-1 b/challenge-143/abigail/t/input-2-1 new file mode 100644 index 0000000000..024f0e0086 --- /dev/null +++ b/challenge-143/abigail/t/input-2-1 @@ -0,0 +1,3 @@ +36 +12 +6 diff --git a/challenge-143/abigail/t/output-1-1.exp b/challenge-143/abigail/t/output-1-1.exp new file mode 100644 index 0000000000..e573c227f4 --- /dev/null +++ b/challenge-143/abigail/t/output-1-1.exp @@ -0,0 +1,2 @@ +25 +50 diff --git a/challenge-143/abigail/t/output-2-1.exp b/challenge-143/abigail/t/output-2-1.exp new file mode 100644 index 0000000000..2f1465d159 --- /dev/null +++ b/challenge-143/abigail/t/output-2-1.exp @@ -0,0 +1,3 @@ +1 +1 +0 -- cgit From 13ebea25187e04a08fb804ce8496c67dc373000b Mon Sep 17 00:00:00 2001 From: Abigail Date: Mon, 13 Dec 2021 13:38:44 +0100 Subject: Eval solutions for week 143, part 1 --- challenge-143/abigail/README.md | 8 ++++++++ challenge-143/abigail/bash/ch-1.sh | 1 + challenge-143/abigail/bc/ch-1.bc | 1 + challenge-143/abigail/lua/ch-1.lua | 13 +++++++++++++ challenge-143/abigail/node/ch-1.js | 10 ++++++++++ challenge-143/abigail/python/ch-1.py | 13 +++++++++++++ challenge-143/abigail/r/ch-1.r | 16 ++++++++++++++++ challenge-143/abigail/ruby/ch-1.rb | 7 +++++++ challenge-143/abigail/tcl/ch-1.tcl | 5 +++++ 9 files changed, 74 insertions(+) create mode 100644 challenge-143/abigail/bash/ch-1.sh create mode 100644 challenge-143/abigail/bc/ch-1.bc create mode 100644 challenge-143/abigail/lua/ch-1.lua create mode 100644 challenge-143/abigail/node/ch-1.js create mode 100644 challenge-143/abigail/python/ch-1.py create mode 100644 challenge-143/abigail/r/ch-1.r create mode 100644 challenge-143/abigail/ruby/ch-1.rb create mode 100644 challenge-143/abigail/tcl/ch-1.tcl diff --git a/challenge-143/abigail/README.md b/challenge-143/abigail/README.md index aa835b7f1e..48a5093c46 100644 --- a/challenge-143/abigail/README.md +++ b/challenge-143/abigail/README.md @@ -2,7 +2,15 @@ ## Part 1 +* [Bash](bash/ch-1.sh) +* [Bc](bc/ch-1.bc) +* [Lua](lua/ch-1.lua) +* [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) +* [Python](python/ch-1.py) +* [R](r/ch-1.r) +* [Ruby](ruby/ch-1.rb) +* [Tcl](tcl/ch-1.tcl) ## Part 2 diff --git a/challenge-143/abigail/bash/ch-1.sh b/challenge-143/abigail/bash/ch-1.sh new file mode 100644 index 0000000000..db6e8363a1 --- /dev/null +++ b/challenge-143/abigail/bash/ch-1.sh @@ -0,0 +1 @@ +while read l;do echo $(($l));done diff --git a/challenge-143/abigail/bc/ch-1.bc b/challenge-143/abigail/bc/ch-1.bc new file mode 100644 index 0000000000..dc63c2a8f4 --- /dev/null +++ b/challenge-143/abigail/bc/ch-1.bc @@ -0,0 +1 @@ +bc < input-file diff --git a/challenge-143/abigail/lua/ch-1.lua b/challenge-143/abigail/lua/ch-1.lua new file mode 100644 index 0000000000..524751df03 --- /dev/null +++ b/challenge-143/abigail/lua/ch-1.lua @@ -0,0 +1,13 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1.lua < input-file +-- + +for line in io . lines () do + (load ("print (" .. line .. ")")) () +end diff --git a/challenge-143/abigail/node/ch-1.js b/challenge-143/abigail/node/ch-1.js new file mode 100644 index 0000000000..33be42296f --- /dev/null +++ b/challenge-143/abigail/node/ch-1.js @@ -0,0 +1,10 @@ +#!/usr/local/bin/node + +// +// Run as: node ch-1.js < input-file +// + + require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', line => {console . log (eval (line))}) + diff --git a/challenge-143/abigail/python/ch-1.py b/challenge-143/abigail/python/ch-1.py new file mode 100644 index 0000000000..3b67604548 --- /dev/null +++ b/challenge-143/abigail/python/ch-1.py @@ -0,0 +1,13 @@ +#!/opt/local/bin/python + +# +# See ../README.md +# + +# +# Run as: python ch-1.py < input-file +# + +import fileinput + +for line in fileinput . input (): print (eval (line)) diff --git a/challenge-143/abigail/r/ch-1.r b/challenge-143/abigail/r/ch-1.r new file mode 100644 index 0000000000..238fc25f08 --- /dev/null +++ b/challenge-143/abigail/r/ch-1.r @@ -0,0 +1,16 @@ +# +# See ../README.md +# + +# +# Run as: Rscript ch-1.r < input-file +# + +stdin <- file ('stdin', 'r') +repeat { + n <- readLines (stdin, n = 1) + if (length (n) == 0) { + break + } + print (eval (parse (text = n))) +} diff --git a/challenge-143/abigail/ruby/ch-1.rb b/challenge-143/abigail/ruby/ch-1.rb new file mode 100644 index 0000000000..314b69797c --- /dev/null +++ b/challenge-143/abigail/ruby/ch-1.rb @@ -0,0 +1,7 @@ +#!/usr/bin/ruby + +# +# Run as: ruby ch-1.rb < input-file +# + +ARGF . each_line do |_| puts (eval _) end diff --git a/challenge-143/abigail/tcl/ch-1.tcl b/challenge-143/abigail/tcl/ch-1.tcl new file mode 100644 index 0000000000..3796f3ae1c --- /dev/null +++ b/challenge-143/abigail/tcl/ch-1.tcl @@ -0,0 +1,5 @@ +# +# Run as: tclsh ch-1.tcl < input-file +# + +while {[gets stdin line] >= 0} {puts [expr $line]} -- cgit