diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2020-11-29 17:39:22 -0500 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2020-11-29 17:39:22 -0500 |
| commit | fa21c0ca9ca760056b1a90c5775e096c098f4b65 (patch) | |
| tree | 9ef7947269a99abf565cff23e9e101dd8f78f661 /challenge-015 | |
| parent | 997f3befe5ec5e5e0f45b6f22babf8823e835f4f (diff) | |
| download | perlweeklychallenge-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/README | 1 | ||||
| -rwxr-xr-x | challenge-015/stuart-little/raku/ch-1.p6 | 11 | ||||
| -rwxr-xr-x | challenge-015/stuart-little/raku/ch-2.p6 | 17 |
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; +} |
