aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarnesom <arne@bbop.org>2024-03-20 23:49:25 +0100
committerarnesom <arne@bbop.org>2024-03-20 23:49:25 +0100
commit77773e90bb395fdf6a927942e2ed5f7a743170ac (patch)
tree75a484bdb3cbe004faa1e1308e098d7cf821ee58
parent5bdb6ed8347dae7adc19d0403759d70f47f047fc (diff)
downloadperlweeklychallenge-club-77773e90bb395fdf6a927942e2ed5f7a743170ac.tar.gz
perlweeklychallenge-club-77773e90bb395fdf6a927942e2ed5f7a743170ac.tar.bz2
perlweeklychallenge-club-77773e90bb395fdf6a927942e2ed5f7a743170ac.zip
Arne Sommer
-rw-r--r--challenge-261/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-261/arne-sommer/raku/ch-1.raku10
-rwxr-xr-xchallenge-261/arne-sommer/raku/ch-2.raku17
-rwxr-xr-xchallenge-261/arne-sommer/raku/element-digit-sum10
-rwxr-xr-xchallenge-261/arne-sommer/raku/multiply-by-two17
5 files changed, 55 insertions, 0 deletions
diff --git a/challenge-261/arne-sommer/blog.txt b/challenge-261/arne-sommer/blog.txt
new file mode 100644
index 0000000000..6ce87f94ea
--- /dev/null
+++ b/challenge-261/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/two-elements.html
diff --git a/challenge-261/arne-sommer/raku/ch-1.raku b/challenge-261/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..0bf8925921
--- /dev/null
+++ b/challenge-261/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ UInt && @ints.elems > 0, :v(:$verbose));
+
+my $elem-sum = @ints.sum;
+my $digit-sum = @ints>>.comb>>.sum.sum;
+
+say ": Elem sum: $elem-sum, Digit sum: $digit-sum" if $verbose;
+
+say abs($elem-sum - $digit-sum);
diff --git a/challenge-261/arne-sommer/raku/ch-2.raku b/challenge-261/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..8781c3557c
--- /dev/null
+++ b/challenge-261/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $start is copy,
+ *@ints where all(@ints) ~~ Int && @ints.elems > 0,
+ :v(:$verbose));
+
+my $step = 1;
+
+while any(@ints) == $start
+{
+ say ": Step { $step++ }: $start is in the array, so $start x 2 = { $start * 2 }" if $verbose;
+ $start = $start * 2;
+}
+
+say ": $start is not found in the array, so return $start" if $verbose;
+
+say $start;
diff --git a/challenge-261/arne-sommer/raku/element-digit-sum b/challenge-261/arne-sommer/raku/element-digit-sum
new file mode 100755
index 0000000000..0bf8925921
--- /dev/null
+++ b/challenge-261/arne-sommer/raku/element-digit-sum
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ UInt && @ints.elems > 0, :v(:$verbose));
+
+my $elem-sum = @ints.sum;
+my $digit-sum = @ints>>.comb>>.sum.sum;
+
+say ": Elem sum: $elem-sum, Digit sum: $digit-sum" if $verbose;
+
+say abs($elem-sum - $digit-sum);
diff --git a/challenge-261/arne-sommer/raku/multiply-by-two b/challenge-261/arne-sommer/raku/multiply-by-two
new file mode 100755
index 0000000000..8781c3557c
--- /dev/null
+++ b/challenge-261/arne-sommer/raku/multiply-by-two
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $start is copy,
+ *@ints where all(@ints) ~~ Int && @ints.elems > 0,
+ :v(:$verbose));
+
+my $step = 1;
+
+while any(@ints) == $start
+{
+ say ": Step { $step++ }: $start is in the array, so $start x 2 = { $start * 2 }" if $verbose;
+ $start = $start * 2;
+}
+
+say ": $start is not found in the array, so return $start" if $verbose;
+
+say $start;