diff options
| author | Polgár Márton <polgar@astron.hu> | 2022-06-07 12:46:08 +0200 |
|---|---|---|
| committer | Polgár Márton <polgar@astron.hu> | 2022-06-07 12:46:08 +0200 |
| commit | 72f427511f8c9ae889454364dce70b7ecef0ce2a (patch) | |
| tree | 0cf432e8074e76806b0ef2fe8a6b8c52b0436e22 | |
| parent | ad6edd6a47450455cf81a94854ce74eabee2501a (diff) | |
| download | perlweeklychallenge-club-72f427511f8c9ae889454364dce70b7ecef0ce2a.tar.gz perlweeklychallenge-club-72f427511f8c9ae889454364dce70b7ecef0ce2a.tar.bz2 perlweeklychallenge-club-72f427511f8c9ae889454364dce70b7ecef0ce2a.zip | |
Challenge #168 solutions by 2colours
| -rwxr-xr-x | challenge-168/2colours/raku/ch-1.raku | 8 | ||||
| -rwxr-xr-x | challenge-168/2colours/raku/ch-2.raku | 20 |
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-168/2colours/raku/ch-1.raku b/challenge-168/2colours/raku/ch-1.raku new file mode 100755 index 0000000000..b5c7508be4 --- /dev/null +++ b/challenge-168/2colours/raku/ch-1.raku @@ -0,0 +1,8 @@ +#!/usr/bin/env raku + +my @perrin-seq = 3, 0, 2, { $^c; $^a + $^b } ... *; +my @result <== + @perrin-seq.grep: &is-prime + andthen .unique.head: 13 + andthen .sort; +say "f(13) = [{@result.join: ', '}]";
\ No newline at end of file diff --git a/challenge-168/2colours/raku/ch-2.raku b/challenge-168/2colours/raku/ch-2.raku new file mode 100755 index 0000000000..ddc4ecd2a7 --- /dev/null +++ b/challenge-168/2colours/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +multi prime-factors(Int() $num) { samewith $num, 1 } +multi prime-factors(1, $) { () } +multi prime-factors($num where *.&is-prime, $) { ($num, ) } +multi prime-factors($num is copy, $lower-bound) { + my $first-factor = ($lower-bound ^.. *).first: $num %% *; + my $first-exponent = 0; + while $num %% $first-factor { + $first-exponent++; + $num div= $first-factor; + } + |($first-factor xx $first-exponent), |prime-factors($num, $first-factor) +} + +multi home-prime($num where *.&is-prime) { $num } +multi home-prime($num) { samewith [~] prime-factors $num} + +my $n = prompt 'N = '; +say home-prime($n);
\ No newline at end of file |
