diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-02 22:29:10 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-02 22:29:10 +0000 |
| commit | 8e9fd2261fc574c5b93cbcfc2aa95896b346fbf9 (patch) | |
| tree | c5092eccf10a0a028f70792169df6cb62586545d | |
| parent | fe70516cf5442f5820a0e5238a194cc9c9206e19 (diff) | |
| parent | de32900bf3ebed4c3a5cffc9f09e3f55bcee5cda (diff) | |
| download | perlweeklychallenge-club-8e9fd2261fc574c5b93cbcfc2aa95896b346fbf9.tar.gz perlweeklychallenge-club-8e9fd2261fc574c5b93cbcfc2aa95896b346fbf9.tar.bz2 perlweeklychallenge-club-8e9fd2261fc574c5b93cbcfc2aa95896b346fbf9.zip | |
Merge pull request #8987 from librasteve/new241
challenge answers
| -rw-r--r-- | challenge-241/librasteve/raku/ch1.raku | 41 | ||||
| -rw-r--r-- | challenge-241/librasteve/raku/ch2.raku | 33 |
2 files changed, 74 insertions, 0 deletions
diff --git a/challenge-241/librasteve/raku/ch1.raku b/challenge-241/librasteve/raku/ch1.raku new file mode 100644 index 0000000000..33908f3151 --- /dev/null +++ b/challenge-241/librasteve/raku/ch1.raku @@ -0,0 +1,41 @@ +use Data::Dump::Tree; +use Test; + + + +my @tests = [ + %( + nums => (0, 1, 4, 6, 7, 10), + diff => 3, + ), + %( + nums => (4, 5, 6, 7, 8, 9), + diff => 2, + ), + %( + nums => [5..7], + diff => 1, + ), + %( + nums => [5,7], + diff => 1, + ), +]; + +sub run( \nums, \diff) { + + sub check( \i, \j, \k ) { + i < j < k && # always true + nums[j] - nums[i] == diff && + nums[k] - nums[j] == diff + } + + gather { + for ^nums .combinations(3) { + take if check(|@^a) + } + } + +} + +say run(.<nums>, .<diff>) for @tests; diff --git a/challenge-241/librasteve/raku/ch2.raku b/challenge-241/librasteve/raku/ch2.raku new file mode 100644 index 0000000000..1f6af95c50 --- /dev/null +++ b/challenge-241/librasteve/raku/ch2.raku @@ -0,0 +1,33 @@ +use Data::Dump::Tree; +use Test; + + +my @tests = [ + %( + int => (11, 8, 27, 4), + ), +]; + +sub run( \int ) { + + sub prime-factors(Int $n is copy) { + my $f = 2; + + gather { + while $n > 1 { + if $n %% $f { + $n div= $f; take $f + } else { + $f++ + } + } + } + } + + sub pf-count($n) { +prime-factors($n) } + + int.sort: *.&pf-count + +} + +say .<int>, " => ", run(.<int>) for @tests |
