From f9c8c04e36aaedacaeafc77e1876fc23aa2f9712 Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 10 Jan 2022 11:58:34 +0000 Subject: initial 147 --- challenge-147/mark-anderson/raku/ch-1.raku | 19 +++++++++++++++++++ challenge-147/mark-anderson/raku/ch-2.raku | 24 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 challenge-147/mark-anderson/raku/ch-1.raku create mode 100644 challenge-147/mark-anderson/raku/ch-2.raku (limited to 'challenge-147') 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..5780420a53 --- /dev/null +++ b/challenge-147/mark-anderson/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +say (1, 2, 3, { $_ + 2 } ... *).grep(&tp).head(20); + +multi tp(\n where *.index: 0) +{ + return False; +} + +multi tp(\n where * < 10) +{ + return 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..d7581ebace --- /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 = reverse (1..2200).map(&pentagonal); + +for @p X @p +{ + 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) +{ + return (((sqrt(24 * n + 1)) + 1) / 6).narrow ~~ UInt; +} -- cgit