aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-08 09:53:44 +0100
committerGitHub <noreply@github.com>2021-06-08 09:53:44 +0100
commita3b7a35a23c3d3d28f71cf6860c64fec706af4ec (patch)
tree3ee5aef4decc5492a16aa82ebf4bc2bb25f1a58b
parentb86f31434f255cb71b5fe117b7cba185af5381e0 (diff)
parent986c32244ac3ac6a33294457fed9a7559bb4b920 (diff)
downloadperlweeklychallenge-club-a3b7a35a23c3d3d28f71cf6860c64fec706af4ec.tar.gz
perlweeklychallenge-club-a3b7a35a23c3d3d28f71cf6860c64fec706af4ec.tar.bz2
perlweeklychallenge-club-a3b7a35a23c3d3d28f71cf6860c64fec706af4ec.zip
Merge pull request #4225 from fluca1978/pwc116
Pwc116
-rw-r--r--challenge-116/luca-ferrari/blog-1.txt1
-rw-r--r--challenge-116/luca-ferrari/blog-2.txt1
-rw-r--r--challenge-116/luca-ferrari/raku/ch-1.p641
-rw-r--r--challenge-116/luca-ferrari/raku/ch-2.p68
4 files changed, 51 insertions, 0 deletions
diff --git a/challenge-116/luca-ferrari/blog-1.txt b/challenge-116/luca-ferrari/blog-1.txt
new file mode 100644
index 0000000000..dac805f2b0
--- /dev/null
+++ b/challenge-116/luca-ferrari/blog-1.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2021/06/08/PerlWeeklyChallenge116.html#task1
diff --git a/challenge-116/luca-ferrari/blog-2.txt b/challenge-116/luca-ferrari/blog-2.txt
new file mode 100644
index 0000000000..edd6829f9a
--- /dev/null
+++ b/challenge-116/luca-ferrari/blog-2.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2021/06/08/PerlWeeklyChallenge116.html#task2
diff --git a/challenge-116/luca-ferrari/raku/ch-1.p6 b/challenge-116/luca-ferrari/raku/ch-1.p6
new file mode 100644
index 0000000000..e1c71ba561
--- /dev/null
+++ b/challenge-116/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,41 @@
+#!raku
+
+sub MAIN( Int $N where { $N >= 10 } ) {
+ my @digits = $N.split( '', :skip-empty );
+ my $min-length = 1;
+
+ my @numbers;
+
+ my $i = 0;
+ my $done = True;
+ while $done && $i < @digits.elems {
+
+
+
+ # first number ever
+ @numbers.push: @digits[ $i ] if ! @numbers;
+ my $current-number = @numbers[ * - 1 ];
+
+ # compute available next numbers
+ my @next-number = $current-number + 1, $current-number - 1;
+
+ # see if there is room for any of the next
+ # numbers in the remaining array of digits
+ $done = False;
+ for @next-number {
+ my $length = $_.Str.chars;
+ if $i + $length < @digits.elems {
+ my $current = @digits[ $i + 1 .. $i + $length ].join.Int;
+ if $current == $_ {
+ @numbers.push: $current;
+ $i += $length;
+ $done = True;
+ last;
+ }
+ }
+ }
+ }
+
+ # all done
+ say @numbers if $done;
+}
diff --git a/challenge-116/luca-ferrari/raku/ch-2.p6 b/challenge-116/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..5de7b02120
--- /dev/null
+++ b/challenge-116/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,8 @@
+#!raku
+
+sub MAIN( Int $N where { $N >= 10 } ) {
+
+ my $sum = $N.split( '' ).map( { $_ * $_ } ).sum;
+ say 1 and exit if $sum.sqrt == $sum.sqrt.Int;
+ say 0;
+}