aboutsummaryrefslogtreecommitdiff
path: root/challenge-003
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2020-11-25 10:12:37 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2020-11-25 10:12:37 -0500
commit49fc1359ebc1ce2cd202de3efa83cba1d8e51bb6 (patch)
tree9969059ea390d11e9a1d04d09a0f43beecff2668 /challenge-003
parent89360d10a5f2c28dfaa7524a737129ebe9dbd23a (diff)
downloadperlweeklychallenge-club-49fc1359ebc1ce2cd202de3efa83cba1d8e51bb6.tar.gz
perlweeklychallenge-club-49fc1359ebc1ce2cd202de3efa83cba1d8e51bb6.tar.bz2
perlweeklychallenge-club-49fc1359ebc1ce2cd202de3efa83cba1d8e51bb6.zip
1st commit on 001-004
Diffstat (limited to 'challenge-003')
-rw-r--r--challenge-003/stuart-little/README1
-rwxr-xr-xchallenge-003/stuart-little/raku/ch-1.p610
-rwxr-xr-xchallenge-003/stuart-little/raku/ch-2.p610
3 files changed, 21 insertions, 0 deletions
diff --git a/challenge-003/stuart-little/README b/challenge-003/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-003/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-003/stuart-little/raku/ch-1.p6 b/challenge-003/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..239303ff7e
--- /dev/null
+++ b/challenge-003/stuart-little/raku/ch-1.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %memo=((2,3,5) X=> 1).Hash;
+
+sub smth5p($n) { %memo{$n} && return True; return (my $den=(2,3,5).first({ $n %% $_ })) ?? (%memo{$n div $den} && (%memo{$n}=1).Bool || False) !! (False) }
+
+(2..@*ARGS[0].Int).grep(*.&smth5p).say
+
+# run as <script> <number $n> to return the 5-smooth numbers innthe range 2..$n
diff --git a/challenge-003/stuart-little/raku/ch-2.p6 b/challenge-003/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..cb84568373
--- /dev/null
+++ b/challenge-003/stuart-little/raku/ch-2.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub pscl($n) { $n==1 && return ((1,),); my @a=pscl($n-1); return(|@a, (1, |(@(@a.[*-1]) Z+ @(@a.[*-1].[1..*])) ,1)) }
+
+sub pprnt(@a) { @a.map(*.join(" ")) }
+
+for @*ARGS[0].Int.&pscl.&pprnt {.say}
+
+# run as <script> <number of lines>