diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-11-21 03:10:43 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-21 03:10:43 +0000 |
| commit | 9daac0064bd5616d17899ea3fc3901256cea496a (patch) | |
| tree | a71aec1fe44121205b3e2e61da3392168f0b7cba | |
| parent | 129e74149b0d5d8e72cdfde020095c893ca2246f (diff) | |
| parent | e24bb02d6d8fd1d616648fe198525138359ad000 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-191/arne-sommer/raku/ch-1.raku | 15 | ||||
| -rwxr-xr-x | challenge-191/arne-sommer/raku/ch-2.raku | 30 | ||||
| -rwxr-xr-x | challenge-191/arne-sommer/raku/cute-list | 30 | ||||
| -rwxr-xr-x | challenge-191/arne-sommer/raku/twice-largest | 15 |
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; |
