aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-08 10:46:50 +0100
committerGitHub <noreply@github.com>2021-06-08 10:46:50 +0100
commit8b87f2e9d6f026e790d8cf82799c9f68e3c21339 (patch)
tree761ed3f76d8081ceae6d1ba01a33cf4a48fe3a31
parentbd64c126a9f3f1dd58a39213f26401006298eb6e (diff)
parentf3c322db348183b77b45a5a4ca22b29dfbbc43ad (diff)
downloadperlweeklychallenge-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.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);
+}