aboutsummaryrefslogtreecommitdiff
path: root/challenge-150
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-02-04 11:21:52 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-02-04 11:21:52 +0000
commit28eeb5a68ef7d6db83d218dba809944e4135b025 (patch)
tree2bfd2411ad87b718dc556b55b2e128628fd16008 /challenge-150
parent29588241496bdc8459bbad3329d129195807db37 (diff)
downloadperlweeklychallenge-club-28eeb5a68ef7d6db83d218dba809944e4135b025.tar.gz
perlweeklychallenge-club-28eeb5a68ef7d6db83d218dba809944e4135b025.tar.bz2
perlweeklychallenge-club-28eeb5a68ef7d6db83d218dba809944e4135b025.zip
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-150')
-rw-r--r--challenge-150/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-150/laurent-rosenfeld/perl/ch-1.pl15
-rw-r--r--challenge-150/laurent-rosenfeld/perl/ch-2.pl14
-rw-r--r--challenge-150/laurent-rosenfeld/raku/ch-1.raku8
-rw-r--r--challenge-150/laurent-rosenfeld/raku/ch-2.raku10
5 files changed, 48 insertions, 0 deletions
diff --git a/challenge-150/laurent-rosenfeld/blog.txt b/challenge-150/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..fc8a3ad692
--- /dev/null
+++ b/challenge-150/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2022/02/perl-weekly-challenge-150-fibonacci-words-and-square-free-integers.html
diff --git a/challenge-150/laurent-rosenfeld/perl/ch-1.pl b/challenge-150/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..d81cf08b51
--- /dev/null
+++ b/challenge-150/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,15 @@
+use strict;
+use warnings;
+use feature "say";
+
+sub fibonacci {
+ my ($a, $b) = @_;
+ my @fib = $a < $b ? ($a, $b) : ($b, $a);
+ for my $i (1..20) {
+ push @fib, $fib[-2] . $fib[-1];
+ next if length $fib[-1] < 51;
+ say $fib[-1];
+ return $fib[-1];
+ }
+}
+say substr fibonacci(1234, 5678), 50, 1;
diff --git a/challenge-150/laurent-rosenfeld/perl/ch-2.pl b/challenge-150/laurent-rosenfeld/perl/ch-2.pl
new file mode 100644
index 0000000000..7fd51a7d1e
--- /dev/null
+++ b/challenge-150/laurent-rosenfeld/perl/ch-2.pl
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+use feature "say";
+
+my @squares = map { $_ * $_ } 2, 3, 5, 7, 11, 13;
+# say "@squares"; # 4 9 25 49 121 169 - squares of prime integers
+NEXT_I: for my $i (1..500) {
+ for my $j (@squares) {
+ next NEXT_I if $i % $j == 0;
+ last if $j > $i;
+ }
+ print "$i ";
+}
+say " ";
diff --git a/challenge-150/laurent-rosenfeld/raku/ch-1.raku b/challenge-150/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..14e4548645
--- /dev/null
+++ b/challenge-150/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1,8 @@
+use v6;
+
+sub fibonacci (Int $a, Int $b where $a.chars == $b.chars) {
+ my ($c, $d) = $a < $b ?? ($a, $b) !! ($b, $a);
+ my @fib = $c, $d, * ~ * ... *.chars >= 51;
+ # say @fib;
+}
+say (fibonacci 1234, 5678)[*-1].comb[50];
diff --git a/challenge-150/laurent-rosenfeld/raku/ch-2.raku b/challenge-150/laurent-rosenfeld/raku/ch-2.raku
new file mode 100644
index 0000000000..a141aba1a5
--- /dev/null
+++ b/challenge-150/laurent-rosenfeld/raku/ch-2.raku
@@ -0,0 +1,10 @@
+my @squares = map { $_² }, grep {.is-prime}, 2..250.sqrt.Int;
+# say @squares; # [4 9 25 49 121 169] squares of prime integers
+NEXT_I: for 1..500 -> $i {
+ for @squares -> $j {
+ next NEXT_I if $i %% $j;
+ last if $j > $i;
+ }
+ print "$i ";
+}
+say "\nDuration: ", now - INIT now;