aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark A <andemark@a-iot1t.uch.ad.pvt>2021-06-07 15:16:32 -0600
committerMark A <andemark@a-iot1t.uch.ad.pvt>2021-06-07 15:16:32 -0600
commitf3c322db348183b77b45a5a4ca22b29dfbbc43ad (patch)
treeb486bd27bd72b4cafafaa81561cf6fe7315b9f39
parent4830b1d50fd610eb2424fe284cb48a2795e0478c (diff)
downloadperlweeklychallenge-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.raku27
-rw-r--r--challenge-116/mark-anderson/raku/ch-2.raku13
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);
+}