diff options
| author | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-06-07 15:16:32 -0600 |
|---|---|---|
| committer | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-06-07 15:16:32 -0600 |
| commit | f3c322db348183b77b45a5a4ca22b29dfbbc43ad (patch) | |
| tree | b486bd27bd72b4cafafaa81561cf6fe7315b9f39 | |
| parent | 4830b1d50fd610eb2424fe284cb48a2795e0478c (diff) | |
| download | perlweeklychallenge-club-f3c322db348183b77b45a5a4ca22b29dfbbc43ad.tar.gz perlweeklychallenge-club-f3c322db348183b77b45a5a4ca22b29dfbbc43ad.tar.bz2 perlweeklychallenge-club-f3c322db348183b77b45a5a4ca22b29dfbbc43ad.zip | |
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); +} |
