From 24bce6c7bbb60c50ed3bead06e8a16da9db8eeef Mon Sep 17 00:00:00 2001 From: Humberto Massa Date: Thu, 9 Jun 2022 12:23:22 -0300 Subject: Answer to challenge 168 by Massa, Humberto --- challenge-168/massa/raku/ch-1.raku | 2 ++ challenge-168/massa/raku/ch-2.raku | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 challenge-168/massa/raku/ch-1.raku create mode 100644 challenge-168/massa/raku/ch-2.raku diff --git a/challenge-168/massa/raku/ch-1.raku b/challenge-168/massa/raku/ch-1.raku new file mode 100644 index 0000000000..d8fd9a0b66 --- /dev/null +++ b/challenge-168/massa/raku/ch-1.raku @@ -0,0 +1,2 @@ +use v6; +(3, 0, 2, * + * + 0 * * ... *).grep(*.is-prime)[^20].sort.unique[^13].say diff --git a/challenge-168/massa/raku/ch-2.raku b/challenge-168/massa/raku/ch-2.raku new file mode 100644 index 0000000000..535eaa16fa --- /dev/null +++ b/challenge-168/massa/raku/ch-2.raku @@ -0,0 +1,28 @@ +use v6; + +my sub factors(int \x is copy) { + my int $possible-factor = 2; + gather { + while x > 1 { + if $possible-factor.is-prime && x %% $possible-factor { + take $possible-factor; + x div= $possible-factor + } else { + Nil until is-prime ++$possible-factor + } + } + } +} + +my sub hp(int \x is copy) { + loop { + given +[~] factors x { + .return if .is-prime; + x = $_ + } + } +} + +sub MAIN(Int() \n where * > 1) { + say hp n +} -- cgit