diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-11-13 12:32:33 +0100 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-11-13 12:32:33 +0100 |
| commit | c85799d4733d9bb1e3349e6468a293989ab63f61 (patch) | |
| tree | 865cf89d4e44942063b45521601eaa9a4248be81 | |
| parent | 68ac0de506ae75699f29e523b3ae68bb264d2d9e (diff) | |
| download | perlweeklychallenge-club-c85799d4733d9bb1e3349e6468a293989ab63f61.tar.gz perlweeklychallenge-club-c85799d4733d9bb1e3349e6468a293989ab63f61.tar.bz2 perlweeklychallenge-club-c85799d4733d9bb1e3349e6468a293989ab63f61.zip | |
solutions week 138
| -rw-r--r-- | challenge-138/wambash/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-138/wambash/raku/ch-2.raku | 24 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-138/wambash/raku/ch-1.raku b/challenge-138/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..85e7bb1cfb --- /dev/null +++ b/challenge-138/wambash/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub workdays ( $year ) { + Date.new: :$year + andthen $_ ..^ .later: :1year + andthen .grep: *.day-of-week !== 6|7 + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is workdays(2021), 261; + is workdays(2020), 262; + done-testing; +} + +multi MAIN ( $year ) { + say workdays $year +} diff --git a/challenge-138/wambash/raku/ch-2.raku b/challenge-138/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..c4c215d2af --- /dev/null +++ b/challenge-138/wambash/raku/ch-2.raku @@ -0,0 +1,24 @@ +#!/usr/bin/env raku + +sub split-number ($n) { + 1 ..^ $n.chars + andthen .combinations + andthen .map: {0, |$_, $n.chars}\ + andthen .map: { .skip Z- $_ }\ + andthen .skip + andthen .map: { $n.comb.rotor($_) }\ + andthen .tree: *.Seq, *.sum, *.join + andthen .first: {$_² == $n}, :p +} + +multi MAIN (Bool :test($)!) { + use Test; + is split-number(9801), 1=> 99; + is split-number(81), 0 => 9; + is split-number(36), Nil; + done-testing; +} + +multi MAIN ($n) { + say +so split-number $n +} |
