aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-21 03:10:43 +0000
committerGitHub <noreply@github.com>2022-11-21 03:10:43 +0000
commit9daac0064bd5616d17899ea3fc3901256cea496a (patch)
treea71aec1fe44121205b3e2e61da3392168f0b7cba
parent129e74149b0d5d8e72cdfde020095c893ca2246f (diff)
parente24bb02d6d8fd1d616648fe198525138359ad000 (diff)
downloadperlweeklychallenge-club-9daac0064bd5616d17899ea3fc3901256cea496a.tar.gz
perlweeklychallenge-club-9daac0064bd5616d17899ea3fc3901256cea496a.tar.bz2
perlweeklychallenge-club-9daac0064bd5616d17899ea3fc3901256cea496a.zip
Merge pull request #7121 from arnesom/branch-for-challenge-191
Arne Sommer
-rw-r--r--challenge-191/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-191/arne-sommer/raku/ch-1.raku15
-rwxr-xr-xchallenge-191/arne-sommer/raku/ch-2.raku30
-rwxr-xr-xchallenge-191/arne-sommer/raku/cute-list30
-rwxr-xr-xchallenge-191/arne-sommer/raku/twice-largest15
5 files changed, 91 insertions, 0 deletions
diff --git a/challenge-191/arne-sommer/blog.txt b/challenge-191/arne-sommer/blog.txt
new file mode 100644
index 0000000000..56f3689b02
--- /dev/null
+++ b/challenge-191/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/twice-as-cute.html
diff --git a/challenge-191/arne-sommer/raku/ch-1.raku b/challenge-191/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..d112f9d91a
--- /dev/null
+++ b/challenge-191/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ Int, :v(:$verbose));
+
+my @sorted = @list.sort;
+
+say ":Sorted: @sorted[]" if $verbose;
+
+my $largest = @sorted.pop;
+my $next = @sorted.pop;
+
+say ":Largest: $largest" if $verbose;
+say ":Next: $next" if $verbose;
+
+say ($largest >= $next * 2) ?? 1 !! -1;
diff --git a/challenge-191/arne-sommer/raku/ch-2.raku b/challenge-191/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..77b4e2542e
--- /dev/null
+++ b/challenge-191/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,30 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (UInt $n where 0 < $n <= 15, :v(:$verbose));
+
+my @list = (1 .. $n);
+
+say ":List: [{ @list.join(",") }]" if $verbose;
+
+my @permutations = @list.permutations;
+
+say ":Permutations: ", @permutations if $verbose;
+
+my $cute;
+
+for @permutations -> @permutation
+{
+ $cute++ if is-cute(@permutation);
+}
+
+say $cute;
+
+sub is-cute (@list)
+{
+ for 1 .. @list.elems -> $i
+ {
+ return 0 unless @list[$i -1] %% $i || $i %% @list[$i -1];
+ }
+
+ return 1;
+} \ No newline at end of file
diff --git a/challenge-191/arne-sommer/raku/cute-list b/challenge-191/arne-sommer/raku/cute-list
new file mode 100755
index 0000000000..77b4e2542e
--- /dev/null
+++ b/challenge-191/arne-sommer/raku/cute-list
@@ -0,0 +1,30 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (UInt $n where 0 < $n <= 15, :v(:$verbose));
+
+my @list = (1 .. $n);
+
+say ":List: [{ @list.join(",") }]" if $verbose;
+
+my @permutations = @list.permutations;
+
+say ":Permutations: ", @permutations if $verbose;
+
+my $cute;
+
+for @permutations -> @permutation
+{
+ $cute++ if is-cute(@permutation);
+}
+
+say $cute;
+
+sub is-cute (@list)
+{
+ for 1 .. @list.elems -> $i
+ {
+ return 0 unless @list[$i -1] %% $i || $i %% @list[$i -1];
+ }
+
+ return 1;
+} \ No newline at end of file
diff --git a/challenge-191/arne-sommer/raku/twice-largest b/challenge-191/arne-sommer/raku/twice-largest
new file mode 100755
index 0000000000..d112f9d91a
--- /dev/null
+++ b/challenge-191/arne-sommer/raku/twice-largest
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ Int, :v(:$verbose));
+
+my @sorted = @list.sort;
+
+say ":Sorted: @sorted[]" if $verbose;
+
+my $largest = @sorted.pop;
+my $next = @sorted.pop;
+
+say ":Largest: $largest" if $verbose;
+say ":Next: $next" if $verbose;
+
+say ($largest >= $next * 2) ?? 1 !! -1;