From 274c96d4b4dc195b54d625b91af901f463900c8d Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 4 Oct 2021 08:45:47 +0000 Subject: Challenge 133 Solutions (Raku) --- challenge-133/mark-anderson/raku/ch-1.raku | 23 +++++++++++++++++++++++ challenge-133/mark-anderson/raku/ch-2.raku | 13 +++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 challenge-133/mark-anderson/raku/ch-1.raku create mode 100644 challenge-133/mark-anderson/raku/ch-2.raku diff --git a/challenge-133/mark-anderson/raku/ch-1.raku b/challenge-133/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..0050ec81ed --- /dev/null +++ b/challenge-133/mark-anderson/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +use Test; +plan 4; + +is isqrt(10), 3; +is isqrt(27), 5; +is isqrt(85), 9; +is isqrt(101), 10; + +sub isqrt($n) +{ + my $x = $n; + my $y = ($x + 1) div 2; + + while $y < $x + { + $x = $y; + $y = ($x + $n div $x) div 2; + } + + $x; +} diff --git a/challenge-133/mark-anderson/raku/ch-2.raku b/challenge-133/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..0c7ed629d1 --- /dev/null +++ b/challenge-133/mark-anderson/raku/ch-2.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + +use Prime::Factor; + +sub smith-number($n) +{ + return False if $n.is-prime; + my @n = $n.comb; + my @p = prime-factors($n).map(*.comb).flat; + return @n.sum == @p.sum; +} + +say .[^10] given (1..*).grep(&smith-number); -- cgit