aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-12-18 07:52:31 +0000
committerGitHub <noreply@github.com>2022-12-18 07:52:31 +0000
commit78310ab18f608d99867c2133d8567de288bd00ee (patch)
treecb636eddbbde8d6be70ac9fdee788e9a434de99f
parent7827e33b735b35062a0c49704ec0893801a1c12f (diff)
parentfea4044507faac9f25aaca7e3dfc1b82e6c01aad (diff)
downloadperlweeklychallenge-club-78310ab18f608d99867c2133d8567de288bd00ee.tar.gz
perlweeklychallenge-club-78310ab18f608d99867c2133d8567de288bd00ee.tar.bz2
perlweeklychallenge-club-78310ab18f608d99867c2133d8567de288bd00ee.zip
Merge pull request #7266 from arnesom/branch-for-challenge-195
Arne Sommer
-rw-r--r--challenge-195/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-195/arne-sommer/raku/ch-1.raku19
-rwxr-xr-xchallenge-195/arne-sommer/raku/ch-2.raku27
-rwxr-xr-xchallenge-195/arne-sommer/raku/most-frequent-even27
-rwxr-xr-xchallenge-195/arne-sommer/raku/special-integers19
5 files changed, 93 insertions, 0 deletions
diff --git a/challenge-195/arne-sommer/blog.txt b/challenge-195/arne-sommer/blog.txt
new file mode 100644
index 0000000000..667787f742
--- /dev/null
+++ b/challenge-195/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/especially-even.html
diff --git a/challenge-195/arne-sommer/raku/ch-1.raku b/challenge-195/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..172446b32e
--- /dev/null
+++ b/challenge-195/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $n where $n > 0, :v(:$verbose));
+
+my $count = 0;
+
+for 1 .. $n -> $candidate
+{
+ my $special = is-special($candidate);
+ $count++ if $special;
+ say ": $candidate { "special" if $special }" if $verbose;
+}
+
+say $count;
+
+sub is-special ($integer)
+{
+ return all($integer.comb.Bag.values) == 1;
+}
diff --git a/challenge-195/arne-sommer/raku/ch-2.raku b/challenge-195/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..0f6a8728b2
--- /dev/null
+++ b/challenge-195/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/, :v(:$verbose));
+
+my @even = @list.grep: * %% 2;
+
+if @even.elems
+{
+ my $bag = @even.Bag;
+ my $max = $bag.values.max;
+ my $res = $bag.grep({ $_.value == $max });
+ my @sorted = $res>>.key.sort;
+
+ if $verbose
+ {
+ say ":Even: @even[]";
+ say ":Max: $max";
+ say ":Sorted: @sorted[]";
+ }
+
+ say @sorted.first;
+}
+else
+{
+ say ":No even integers" if $verbose;
+ say -1;
+}
diff --git a/challenge-195/arne-sommer/raku/most-frequent-even b/challenge-195/arne-sommer/raku/most-frequent-even
new file mode 100755
index 0000000000..0f6a8728b2
--- /dev/null
+++ b/challenge-195/arne-sommer/raku/most-frequent-even
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/, :v(:$verbose));
+
+my @even = @list.grep: * %% 2;
+
+if @even.elems
+{
+ my $bag = @even.Bag;
+ my $max = $bag.values.max;
+ my $res = $bag.grep({ $_.value == $max });
+ my @sorted = $res>>.key.sort;
+
+ if $verbose
+ {
+ say ":Even: @even[]";
+ say ":Max: $max";
+ say ":Sorted: @sorted[]";
+ }
+
+ say @sorted.first;
+}
+else
+{
+ say ":No even integers" if $verbose;
+ say -1;
+}
diff --git a/challenge-195/arne-sommer/raku/special-integers b/challenge-195/arne-sommer/raku/special-integers
new file mode 100755
index 0000000000..172446b32e
--- /dev/null
+++ b/challenge-195/arne-sommer/raku/special-integers
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $n where $n > 0, :v(:$verbose));
+
+my $count = 0;
+
+for 1 .. $n -> $candidate
+{
+ my $special = is-special($candidate);
+ $count++ if $special;
+ say ": $candidate { "special" if $special }" if $verbose;
+}
+
+say $count;
+
+sub is-special ($integer)
+{
+ return all($integer.comb.Bag.values) == 1;
+}