aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2021-10-04 08:45:47 +0000
committerMark <53903062+andemark@users.noreply.github.com>2021-10-04 08:45:47 +0000
commit274c96d4b4dc195b54d625b91af901f463900c8d (patch)
treea0df8864ef096474d844806e140b0454bf4d0cd9
parent20ffd7b7c80e195548325ace22fe92f2a499984c (diff)
downloadperlweeklychallenge-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.raku23
-rw-r--r--challenge-133/mark-anderson/raku/ch-2.raku13
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);