diff options
| -rwxr-xr-x | challenge-148/2colours/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-148/2colours/raku/ch-2.raku | 17 |
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-148/2colours/raku/ch-1.raku b/challenge-148/2colours/raku/ch-1.raku new file mode 100755 index 0000000000..a88dd8841e --- /dev/null +++ b/challenge-148/2colours/raku/ch-1.raku @@ -0,0 +1,9 @@ +#!/usr/bin/env raku + +constant @small-contains-e = 1, 3, 5, 7, 8, 9, 10, 11, 12; +constant @xties-contains-e = 2, 7, 8, 9; +multi is-eban($num where 0 < * <= 12) { $num !(elem) @small-contains-e } +multi is-eban($num where 13 <= * < 20) { False } +multi is-eban($num where 20 <= * < 100) { $num div 10 !(elem) @xties-contains-e and $num%%10 || is-eban($num%10) } + +say (1..^100).grep(&is-eban); diff --git a/challenge-148/2colours/raku/ch-2.raku b/challenge-148/2colours/raku/ch-2.raku new file mode 100755 index 0000000000..8fb3b5e51d --- /dev/null +++ b/challenge-148/2colours/raku/ch-2.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku + +sub cardano-sum($a, $b, $c) { + ($a+$b*$c**0.5 andthen .sign*.abs**(1/3))+($a-$b*$c**0.5 andthen .sign*.abs**(1/3)) +} + + +my $cardano-triplets = gather { + for 1..Inf -> $biggest { + for 1..$biggest -> $mid { + for 1..$mid -> $smallest { + .take if cardano-sum(|$_) =~= 1 for permutations(($biggest, $mid, $smallest)); + } + } + } +} +.join(" ").say for $cardano-triplets.head(5); |
