aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-003/laurent-rosenfeld/perl5/ch-1.pl13
-rw-r--r--challenge-003/laurent-rosenfeld/perl5/ch-2.pl13
-rw-r--r--challenge-003/laurent-rosenfeld/perl6/ch-1.p614
-rw-r--r--challenge-003/laurent-rosenfeld/perl6/ch-2.p610
4 files changed, 50 insertions, 0 deletions
diff --git a/challenge-003/laurent-rosenfeld/perl5/ch-1.pl b/challenge-003/laurent-rosenfeld/perl5/ch-1.pl
new file mode 100644
index 0000000000..570dd3032d
--- /dev/null
+++ b/challenge-003/laurent-rosenfeld/perl5/ch-1.pl
@@ -0,0 +1,13 @@
+use strict;
+use warnings;
+use constant limit => 100;
+my @raw_hamming;
+for my $pow2 (0..6) {
+ for my $pow3 (0..4) {
+ for my $pow5 (0..2) {
+ push @raw_hamming, 2 ** $pow2 * 3 ** $pow3 * 5 ** $pow5;
+ }
+ }
+}
+my @hamming_sequence = sort { $a <=> $b } grep $_ <= limit, @raw_hamming;
+print "@hamming_sequence \n";
diff --git a/challenge-003/laurent-rosenfeld/perl5/ch-2.pl b/challenge-003/laurent-rosenfeld/perl5/ch-2.pl
new file mode 100644
index 0000000000..d94506f913
--- /dev/null
+++ b/challenge-003/laurent-rosenfeld/perl5/ch-2.pl
@@ -0,0 +1,13 @@
+use strict;
+use warnings;
+use feature "say";
+my $nb_rows = shift;
+my @row = (1);
+for (1 .. $nb_rows) {
+ say "@row";
+ my @temp = (0, @row, 0);
+ @row = ();
+ for my $index (0 .. $#temp -1) {
+ push @row, $temp[$index] + $temp[$index + 1];
+ }
+}
diff --git a/challenge-003/laurent-rosenfeld/perl6/ch-1.p6 b/challenge-003/laurent-rosenfeld/perl6/ch-1.p6
new file mode 100644
index 0000000000..b9dd2040e2
--- /dev/null
+++ b/challenge-003/laurent-rosenfeld/perl6/ch-1.p6
@@ -0,0 +1,14 @@
+my @prime_numbers = grep {.is-prime}, 5^..Inf; # we need only primes strictly larger than 5
+my @regulars;
+for (1 .. 100) -> $num {
+ my $is_regular = True;
+ for @prime_numbers -> $prime {
+ last if $prime > $num;
+ if ( $num %% $prime ) {
+ $is_regular = False;
+ last;
+ }
+ }
+ push @regulars, $num if $is_regular;
+}
+say @regulars;
diff --git a/challenge-003/laurent-rosenfeld/perl6/ch-2.p6 b/challenge-003/laurent-rosenfeld/perl6/ch-2.p6
new file mode 100644
index 0000000000..d63f721d25
--- /dev/null
+++ b/challenge-003/laurent-rosenfeld/perl6/ch-2.p6
@@ -0,0 +1,10 @@
+sub pascal ($nb-rows) {
+ my @line = 1,;
+ for 1 .. $nb-rows -> $row {
+ @line.join(" ").say;
+ @line = flat 1, (map {@line[$_] + @line[$_ + 1]}, 0 .. $row - 2), 1;
+ }
+}
+sub MAIN (Int $rows where * > 0) {
+ pascal $rows
+}