diff options
| -rw-r--r-- | challenge-147/mark-anderson/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-147/mark-anderson/raku/ch-2.raku | 24 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-147/mark-anderson/raku/ch-1.raku b/challenge-147/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..e4dc7996fc --- /dev/null +++ b/challenge-147/mark-anderson/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +say (2, 3, { $_ + 2 } ... *).grep(&tp).head(20); + +multi tp(\n where *.index: 0) +{ + False +} + +multi tp(\n where * < 10) +{ + n.is-prime +} + +multi tp(\n) +{ + return False unless n.is-prime; + samewith(n.substr: 1); +} diff --git a/challenge-147/mark-anderson/raku/ch-2.raku b/challenge-147/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..e81d6177a0 --- /dev/null +++ b/challenge-147/mark-anderson/raku/ch-2.raku @@ -0,0 +1,24 @@ +#!/usr/bin/env raku + +# Through trial and error I came up with the ~2200 figure. + +my @p = (2200...1).map(&pentagonal); + +for @p.combinations: 2 +{ + if is-pentagonal(.head + .tail) and is-pentagonal(abs(.head - .tail)) + { + say .head ~ ", " ~ .tail; + last; + } +} + +sub pentagonal(\n) +{ + n * (3 * n - 1) / 2 +} + +sub is-pentagonal(\n) +{ + ((sqrt(24 * n + 1) + 1) / 6).narrow ~~ UInt +} |
