diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-13 12:21:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-13 12:21:55 +0100 |
| commit | c7be16932ee9a0f42db435370a5f4ec1c619f854 (patch) | |
| tree | 78f0ef8dd987dffbfa662bc43979308a36270289 | |
| parent | fa96cc514e839527f7b19c3218a1ec75154343f6 (diff) | |
| parent | d484c9dcf474c328f12fc5bd691d05e3aab50a3d (diff) | |
| download | perlweeklychallenge-club-c7be16932ee9a0f42db435370a5f4ec1c619f854.tar.gz perlweeklychallenge-club-c7be16932ee9a0f42db435370a5f4ec1c619f854.tar.bz2 perlweeklychallenge-club-c7be16932ee9a0f42db435370a5f4ec1c619f854.zip | |
Merge pull request #4241 from wambash/challenge-week-116
solutions week 116
| -rw-r--r-- | challenge-116/wambash/raku/ch-1.raku | 28 | ||||
| -rw-r--r-- | challenge-116/wambash/raku/ch-2.raku | 20 |
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-116/wambash/raku/ch-1.raku b/challenge-116/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..a0c594aa46 --- /dev/null +++ b/challenge-116/wambash/raku/ch-1.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub get-adept ($d, $s) { + ([\~] $d .. *) Z=> [\,] $d .. * + andthen .first: *.key.join.chars ≥ $s.chars +} + +my regex number-sequence { + ^ + (\d+?)\d*: + & + <{with get-adept($0.Int,$/.orig) { make .value; .key } }> + $ +} + +multi MAIN ( Int $n ) { + say $n.match( &number-sequence ).made.fmt: '%d',',' +} + +multi MAIN (Bool :test($)) { + use Test; + is get-adept(12, 12131), '121314' => <12 13 14>; + is '1234'.match( &number-sequence ).made, <1 2 3 4>; + is '91011'.match( &number-sequence ).made, <9 10 11>; + is '10203'.match( &number-sequence ).made, <10203>; + is '12131214'.match( &number-sequence).made, <1213 1214>; + done-testing; +} diff --git a/challenge-116/wambash/raku/ch-2.raku b/challenge-116/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..9a97cc9c87 --- /dev/null +++ b/challenge-116/wambash/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub sum-of-squares ($n) { + $n.comb + andthen .map: *² + andthen .sum + andthen $_ == .sqrt.Int**2 +} + +multi MAIN ( Int $n ) { + say +so sum-of-squares($n) +} + +multi MAIN (Bool :test($)) { + use Test; + is sum-of-squares(34),True; + is sum-of-squares(50),True; + is sum-of-squares(52),False; + done-testing; +} |
