aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-11-02 22:29:10 +0000
committerGitHub <noreply@github.com>2023-11-02 22:29:10 +0000
commit8e9fd2261fc574c5b93cbcfc2aa95896b346fbf9 (patch)
treec5092eccf10a0a028f70792169df6cb62586545d
parentfe70516cf5442f5820a0e5238a194cc9c9206e19 (diff)
parentde32900bf3ebed4c3a5cffc9f09e3f55bcee5cda (diff)
downloadperlweeklychallenge-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.raku41
-rw-r--r--challenge-241/librasteve/raku/ch2.raku33
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