diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-08 10:46:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-08 10:46:50 +0100 |
| commit | 8b87f2e9d6f026e790d8cf82799c9f68e3c21339 (patch) | |
| tree | 761ed3f76d8081ceae6d1ba01a33cf4a48fe3a31 | |
| parent | bd64c126a9f3f1dd58a39213f26401006298eb6e (diff) | |
| parent | f3c322db348183b77b45a5a4ca22b29dfbbc43ad (diff) | |
| download | perlweeklychallenge-club-8b87f2e9d6f026e790d8cf82799c9f68e3c21339.tar.gz perlweeklychallenge-club-8b87f2e9d6f026e790d8cf82799c9f68e3c21339.tar.bz2 perlweeklychallenge-club-8b87f2e9d6f026e790d8cf82799c9f68e3c21339.zip | |
Merge pull request #4227 from andemark/branch-for-challenge-116
Challenge 116 Solutions (Raku)
| -rw-r--r-- | challenge-116/mark-anderson/raku/ch-1.raku | 27 | ||||
| -rw-r--r-- | challenge-116/mark-anderson/raku/ch-2.raku | 13 |
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-116/mark-anderson/raku/ch-1.raku b/challenge-116/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..d96929fe38 --- /dev/null +++ b/challenge-116/mark-anderson/raku/ch-1.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku + +use Test; +plan 5; + +is number-sequence(1234), "1,2,3,4"; +is number-sequence(91011), "9,10,11"; +is number-sequence(10203), "10203"; +is number-sequence(997998999100010011002100310041005), (997..1005).join(","); +is number-sequence(34567891011123456789101113), "3456789101112,3456789101113"; + +sub number-sequence($N) +{ + for ($N.chars div 2)...1 + { + my $head = $N.substr(0, $_); + my $s = [\~] $head...*; + my ($k, $v) = $s.first(*.chars >= $N.chars, :kv); + + if $N eq $v + { + return ($head.Int..$head+$k).join(","); + } + } + + return $N; +} diff --git a/challenge-116/mark-anderson/raku/ch-2.raku b/challenge-116/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..07db888cc2 --- /dev/null +++ b/challenge-116/mark-anderson/raku/ch-2.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + +use Test; +plan 3; + +is sum-of-squares(34), 1; +is sum-of-squares(50), 1; +is sum-of-squares(52), 0; + +sub sum-of-squares($N) +{ + +($N.comb.map(* ** 2).sum.sqrt.narrow ~~ UInt); +} |
