diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-27 06:34:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-27 06:34:10 +0100 |
| commit | a33ab69e4528218cbead294c5fbe39d0559c44d6 (patch) | |
| tree | 3ac333ec096b905ab1cea097a40ee745d86ee892 /challenge-170 | |
| parent | adfb7a51fd0d5afd542f051d6ed96b18f76a7053 (diff) | |
| parent | 7d1fa734e72bcc934dc521f268a8214175b09e9a (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-170/jaldhar-h-vyas/perl/ch-1.pl | 46 | ||||
| -rwxr-xr-x | challenge-170/jaldhar-h-vyas/perl/ch-2.pl | 37 | ||||
| -rwxr-xr-x | challenge-170/jaldhar-h-vyas/raku/ch-1.sh | 4 | ||||
| -rwxr-xr-x | challenge-170/jaldhar-h-vyas/raku/ch-2.raku | 17 |
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 |
