aboutsummaryrefslogtreecommitdiff
path: root/challenge-170
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-06-27 06:34:10 +0100
committerGitHub <noreply@github.com>2022-06-27 06:34:10 +0100
commita33ab69e4528218cbead294c5fbe39d0559c44d6 (patch)
tree3ac333ec096b905ab1cea097a40ee745d86ee892 /challenge-170
parentadfb7a51fd0d5afd542f051d6ed96b18f76a7053 (diff)
parent7d1fa734e72bcc934dc521f268a8214175b09e9a (diff)
downloadperlweeklychallenge-club-a33ab69e4528218cbead294c5fbe39d0559c44d6.tar.gz
perlweeklychallenge-club-a33ab69e4528218cbead294c5fbe39d0559c44d6.tar.bz2
perlweeklychallenge-club-a33ab69e4528218cbead294c5fbe39d0559c44d6.zip
Merge pull request #6347 from jaldhar/challenge-170
Challenge 170 by Jaldhar H. Vyas.
Diffstat (limited to 'challenge-170')
-rw-r--r--challenge-170/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-170/jaldhar-h-vyas/perl/ch-1.pl46
-rwxr-xr-xchallenge-170/jaldhar-h-vyas/perl/ch-2.pl37
-rwxr-xr-xchallenge-170/jaldhar-h-vyas/raku/ch-1.sh4
-rwxr-xr-xchallenge-170/jaldhar-h-vyas/raku/ch-2.raku17
5 files changed, 105 insertions, 0 deletions
diff --git a/challenge-170/jaldhar-h-vyas/blog.txt b/challenge-170/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..a7037b4e4e
--- /dev/null
+++ b/challenge-170/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2022/06/perl_weekly_challenge_week_170.html \ No newline at end of file
diff --git a/challenge-170/jaldhar-h-vyas/perl/ch-1.pl b/challenge-170/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..e2400c1103
--- /dev/null
+++ b/challenge-170/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub isPrime {
+ my ($n) = @_;
+
+ if ($n < 2) {
+ return undef;
+ }
+
+ if ($n == 2) {
+ return 1;
+ }
+
+ for my $i (2 .. sqrt($n)) {
+ if ($n % $i == 0) {
+ return undef;
+ }
+ }
+
+ return 1;
+}
+
+sub nextPrime {
+ state $i = 1;
+ if (scalar @_) {
+ $i = shift;
+ }
+
+ while ($i++) {
+ if (isPrime($i)) {
+ return $i;
+ }
+ }
+}
+
+my @primorials = (1);
+my $n = 1;
+
+until (scalar @primorials == 10) {
+ push @primorials, $n *= nextPrime();
+}
+
+say join q{, }, @primorials;
+
diff --git a/challenge-170/jaldhar-h-vyas/perl/ch-2.pl b/challenge-170/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..1fab8e39a8
--- /dev/null
+++ b/challenge-170/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub kroneckerProduct {
+ my @A = @{$_[0]};
+ my @B = @{$_[1]};
+ my @answer;
+
+ for my $a (0 .. scalar @A - 1) {
+ for my $aa (@{$A[$a]}) {
+ for my $b (0 .. scalar @B - 1) {
+ for my $bb (@{$B[$b]}) {
+ push @{$answer[$a * 2 + $b]}, $aa * $bb;
+ }
+ }
+ }
+ }
+
+ return \@answer;
+}
+
+sub printMatrix {
+ my @matrix = @{$_[0]};
+ for my $row (@matrix) {
+ for my $col (@{$row}) {
+ printf '%2d ', $col;
+ }
+ print "\n";
+ }
+}
+
+my @A = ([1, 2],[3, 4]);
+my @B = ([5, 6],[7, 8]);
+
+say printMatrix(kroneckerProduct(\@A, \@B));
+
diff --git a/challenge-170/jaldhar-h-vyas/raku/ch-1.sh b/challenge-170/jaldhar-h-vyas/raku/ch-1.sh
new file mode 100755
index 0000000000..76f120c914
--- /dev/null
+++ b/challenge-170/jaldhar-h-vyas/raku/ch-1.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+raku -e 'my $n = 1; (1, |(0 .. *).grep({ .is-prime })[^9]).map({ $n *= $_ }).join(q{, }).say';
+
diff --git a/challenge-170/jaldhar-h-vyas/raku/ch-2.raku b/challenge-170/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..6fb8cb4cd9
--- /dev/null
+++ b/challenge-170/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/raku
+
+sub printMatrix(@matrix) {
+ for @matrix -> @row {
+ for @row -> $col {
+ $col.fmt('%2d ').print;
+ }
+ print "\n";
+ }
+}
+
+sub MAIN() {
+ my @A = ((1, 2),(3, 4));
+ my @B = ((5, 6),(7, 8));
+
+ printMatrix((@A X @B).map({ [X*] $_ }));
+} \ No newline at end of file