aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-03-01 10:17:12 +0000
committerGitHub <noreply@github.com>2024-03-01 10:17:12 +0000
commitcc246d15eab6cadf31c5a466c1ddf155fca27003 (patch)
tree78d7c31bd68869f0afaf30693f46acf5f25aa527
parentd64cde6fdb1521b4a240e30615a90febcaf46799 (diff)
parent834120b4443ed4246dd7a14f0c8529922a6ba81c (diff)
downloadperlweeklychallenge-club-cc246d15eab6cadf31c5a466c1ddf155fca27003.tar.gz
perlweeklychallenge-club-cc246d15eab6cadf31c5a466c1ddf155fca27003.tar.bz2
perlweeklychallenge-club-cc246d15eab6cadf31c5a466c1ddf155fca27003.zip
Merge pull request #9675 from arnesom/branch-for-challenge-258
Arne Sommer
-rw-r--r--challenge-258/arne-sommer/blog.txt1
-rw-r--r--challenge-258/arne-sommer/raku/cedn7
-rw-r--r--challenge-258/arne-sommer/raku/ch-1.raku7
-rw-r--r--challenge-258/arne-sommer/raku/ch-2.raku23
-rw-r--r--challenge-258/arne-sommer/raku/sum-of-values23
5 files changed, 61 insertions, 0 deletions
diff --git a/challenge-258/arne-sommer/blog.txt b/challenge-258/arne-sommer/blog.txt
new file mode 100644
index 0000000000..2d326e8d6e
--- /dev/null
+++ b/challenge-258/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/even-sum.html
diff --git a/challenge-258/arne-sommer/raku/cedn b/challenge-258/arne-sommer/raku/cedn
new file mode 100644
index 0000000000..f0a6becdb2
--- /dev/null
+++ b/challenge-258/arne-sommer/raku/cedn
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+subset PosInt of Int where * >= 1;
+
+unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ PosInt);
+
+say @ints.grep( *.chars %% 2 ).elems;
diff --git a/challenge-258/arne-sommer/raku/ch-1.raku b/challenge-258/arne-sommer/raku/ch-1.raku
new file mode 100644
index 0000000000..f0a6becdb2
--- /dev/null
+++ b/challenge-258/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+subset PosInt of Int where * >= 1;
+
+unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ PosInt);
+
+say @ints.grep( *.chars %% 2 ).elems;
diff --git a/challenge-258/arne-sommer/raku/ch-2.raku b/challenge-258/arne-sommer/raku/ch-2.raku
new file mode 100644
index 0000000000..28d7b62739
--- /dev/null
+++ b/challenge-258/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $k, *@ints where @ints.elems > 0 && all(@ints) ~~ Int, :v(:$verbose));
+
+my $output = 0;
+
+for ^@ints.elems -> $index
+{
+ my $binary = $index.fmt('%b');
+ my $sum = $binary.comb.sum;
+
+ if $sum == $k
+ {
+ $output += @ints[$index];
+ say ":Index $index binary $binary -> $sum match - adding @ints[$index] -> $output" if $verbose;
+ }
+ elsif $verbose
+ {
+ say ":Index $index binary $binary -> $sum";
+ }
+}
+
+say $output;
diff --git a/challenge-258/arne-sommer/raku/sum-of-values b/challenge-258/arne-sommer/raku/sum-of-values
new file mode 100644
index 0000000000..28d7b62739
--- /dev/null
+++ b/challenge-258/arne-sommer/raku/sum-of-values
@@ -0,0 +1,23 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $k, *@ints where @ints.elems > 0 && all(@ints) ~~ Int, :v(:$verbose));
+
+my $output = 0;
+
+for ^@ints.elems -> $index
+{
+ my $binary = $index.fmt('%b');
+ my $sum = $binary.comb.sum;
+
+ if $sum == $k
+ {
+ $output += @ints[$index];
+ say ":Index $index binary $binary -> $sum match - adding @ints[$index] -> $output" if $verbose;
+ }
+ elsif $verbose
+ {
+ say ":Index $index binary $binary -> $sum";
+ }
+}
+
+say $output;