diff options
| -rw-r--r-- | challenge-146/wambash/raku/ch-1.raku | 22 | ||||
| -rw-r--r-- | challenge-146/wambash/raku/ch-2.raku | 27 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-146/wambash/raku/ch-1.raku b/challenge-146/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..aa8c9f75ba --- /dev/null +++ b/challenge-146/wambash/raku/ch-1.raku @@ -0,0 +1,22 @@ +#!/usr/bin/env raku + +constant @prime = ^Inf .grep: *.is-prime; + +sub n-prime-number ($n=10001) { + @prime + andthen .skip: $n-1 + andthen .head +} + +multi MAIN (Bool :test($)!) { + use Test; + is n-prime-number(1),2; + is n-prime-number(2),3; + is n-prime-number(6),13; + is n-prime-number(), 104_743; + done-testing; +} + +multi MAIN ($n=10001) { + say n-prime-number $n +} diff --git a/challenge-146/wambash/raku/ch-2.raku b/challenge-146/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..167ec464d6 --- /dev/null +++ b/challenge-146/wambash/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku + +multi sub parent (Rat $r where * > 1) { + $r - 1 +} + +multi sub parent (Rat $r) { + $r / (1-$r) +} + +sub curious-fraction-tree (Rat $member) { + $member, *.&parent ... 1 +} + +multi MAIN (Bool :test($)!) { + use Test; + is curious-fraction-tree(3/5), (3/5, 3/2, 1/2, 1); + is curious-fraction-tree(4/3), (4/3, 1/3, 1/2, 1); + is curious-fraction-tree(121/155), (121/155, 121/34, 87/34, 53/34, 19/34, 19/15, 4/15, 4/11, 4/7, 4/3, 1/3, 1/2, 1); + done-testing; +} + +multi MAIN ($member) { + curious-fraction-tree $member + andthen .map: *.nude.join: '/' + andthen .put +} |
