aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-08 18:16:31 +0000
committerGitHub <noreply@github.com>2021-11-08 18:16:31 +0000
commitaf5c2a9bf549a8b2a0ea476eb1c07a1dc4e8adbc (patch)
treef1ad74e0076f9a2ede0c90476c40df249f175982
parentdfcf558b2190d45a5ebf3c486a7c316dbc3e197e (diff)
parent10e6a7aa2ac5c135eb1c6abb9c4409a9dc842b24 (diff)
downloadperlweeklychallenge-club-af5c2a9bf549a8b2a0ea476eb1c07a1dc4e8adbc.tar.gz
perlweeklychallenge-club-af5c2a9bf549a8b2a0ea476eb1c07a1dc4e8adbc.tar.bz2
perlweeklychallenge-club-af5c2a9bf549a8b2a0ea476eb1c07a1dc4e8adbc.zip
Merge pull request #5180 from andemark/branch-for-challenge-138
initial
-rw-r--r--challenge-138/mark-anderson/raku/ch-1.raku17
-rw-r--r--challenge-138/mark-anderson/raku/ch-2.raku24
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-138/mark-anderson/raku/ch-1.raku b/challenge-138/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..192b2e7822
--- /dev/null
+++ b/challenge-138/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+say workdays(2021);
+say workdays(2020);
+
+sub workdays($year)
+{
+ my $dt = Date.new($year, 1, 1);
+ my $days = $dt.is-leap-year ?? 366 !! 365;
+
+ for 1..$days
+ {
+ state $wd++ if $dt.day-of-week ~~ 1..5;
+ $dt .= later(:1days);
+ LAST { return $wd }
+ }
+}
diff --git a/challenge-138/mark-anderson/raku/ch-2.raku b/challenge-138/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..0eced882d6
--- /dev/null
+++ b/challenge-138/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+say split-number(81);
+say split-number(9801);
+say split-number(36);
+
+sub split-number($n)
+{
+ for terms($n.chars)
+ {
+ my @a = $n.comb.rotor($_);
+ next if first { .elems > 1 and .head == 0 }, @a;
+ return 1 if @a>>.join.sum == $n.sqrt;
+ }
+
+ return 0;
+}
+
+sub terms($u)
+{
+ map {
+ ((.fmt: '%0' ~ $u ~ 'b') ~~ m:g/(.)[$0+]?/).map(*.chars)
+ }, 1..2**($u-1)-1;
+}