aboutsummaryrefslogtreecommitdiff
path: root/challenge-015
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2020-11-29 17:39:22 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2020-11-29 17:39:22 -0500
commitfa21c0ca9ca760056b1a90c5775e096c098f4b65 (patch)
tree9ef7947269a99abf565cff23e9e101dd8f78f661 /challenge-015
parent997f3befe5ec5e5e0f45b6f22babf8823e835f4f (diff)
downloadperlweeklychallenge-club-fa21c0ca9ca760056b1a90c5775e096c098f4b65.tar.gz
perlweeklychallenge-club-fa21c0ca9ca760056b1a90c5775e096c098f4b65.tar.bz2
perlweeklychallenge-club-fa21c0ca9ca760056b1a90c5775e096c098f4b65.zip
1st commit on 013-015
Diffstat (limited to 'challenge-015')
-rw-r--r--challenge-015/stuart-little/README1
-rwxr-xr-xchallenge-015/stuart-little/raku/ch-1.p611
-rwxr-xr-xchallenge-015/stuart-little/raku/ch-2.p617
3 files changed, 29 insertions, 0 deletions
diff --git a/challenge-015/stuart-little/README b/challenge-015/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-015/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-015/stuart-little/raku/ch-1.p6 b/challenge-015/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..bbb3101406
--- /dev/null
+++ b/challenge-015/stuart-little/raku/ch-1.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/env perl6
+use v6;
+
+my @primes=(2..*).grep(*.is-prime);
+
+my @strong-primes=@primes.pairs.grep({ $_.key > 0 && 2*$_.value > @primes[$_.key-1]+@primes[$_.key+1] }).map(*.value);
+
+my @weak-primes=@primes.pairs.grep({ $_.key > 0 && 2*$_.value < @primes[$_.key-1]+@primes[$_.key+1] }).map(*.value);
+
+say @strong-primes[0..9];
+say @weak-primes[0..9];
diff --git a/challenge-015/stuart-little/raku/ch-2.p6 b/challenge-015/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..64512582ab
--- /dev/null
+++ b/challenge-015/stuart-little/raku/ch-2.p6
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ $text,
+ Bool :e(:$encrypt),
+ Bool :d(:$decrypt) where {$_ || $encrypt},
+ Str :k(:key(:$keyword)) where {$text && $_},
+ ) {
+
+ my @offsets=({|$keyword.lc.comb.map(*.ord-97)} ... *);
+
+ my &shiftop=($encrypt && ! $decrypt) ?? &[+] !! &[-];
+
+ say $text.comb.map( sub ($c) { $c ~~ /<[a..z]>/ && return (($c.ord-97).&shiftop(@offsets.shift) % 26 + 97).chr; $c ~~ /<[A..Z]>/ && return (($c.ord-65).&shiftop(@offsets.shift) % 26 + 65).chr; $c }).join;
+}