diff options
| author | Mark <53903062+andemark@users.noreply.github.com> | 2021-10-04 08:45:47 +0000 |
|---|---|---|
| committer | Mark <53903062+andemark@users.noreply.github.com> | 2021-10-04 08:45:47 +0000 |
| commit | 274c96d4b4dc195b54d625b91af901f463900c8d (patch) | |
| tree | a0df8864ef096474d844806e140b0454bf4d0cd9 | |
| parent | 20ffd7b7c80e195548325ace22fe92f2a499984c (diff) | |
| download | perlweeklychallenge-club-274c96d4b4dc195b54d625b91af901f463900c8d.tar.gz perlweeklychallenge-club-274c96d4b4dc195b54d625b91af901f463900c8d.tar.bz2 perlweeklychallenge-club-274c96d4b4dc195b54d625b91af901f463900c8d.zip | |
Challenge 133 Solutions (Raku)
| -rw-r--r-- | challenge-133/mark-anderson/raku/ch-1.raku | 23 | ||||
| -rw-r--r-- | challenge-133/mark-anderson/raku/ch-2.raku | 13 |
2 files changed, 36 insertions, 0 deletions
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); |
