aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-10-18 23:51:36 +0100
committerGitHub <noreply@github.com>2020-10-18 23:51:36 +0100
commitf9764598de244087444d44e431bca04fef5e348b (patch)
tree83f06b2c2d4fc1d8a44cada5fc0a469ac5bc6ec1
parent4f7123a9086f668ab1a4ebfe85fb8f9a8243bf8a (diff)
parentfaee67950ea27de6c51a5c64aa0984aa55e25982 (diff)
downloadperlweeklychallenge-club-f9764598de244087444d44e431bca04fef5e348b.tar.gz
perlweeklychallenge-club-f9764598de244087444d44e431bca04fef5e348b.tar.bz2
perlweeklychallenge-club-f9764598de244087444d44e431bca04fef5e348b.zip
Merge pull request #2562 from jaldhar/challenge-082
Challenge 82 by Jaldhar H. Vyas
-rw-r--r--challenge-082/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-082/jaldhar-h-vyas/perl/ch-1.pl31
-rwxr-xr-xchallenge-082/jaldhar-h-vyas/perl/ch-2.pl37
-rwxr-xr-xchallenge-082/jaldhar-h-vyas/raku/ch-1.p69
-rwxr-xr-xchallenge-082/jaldhar-h-vyas/raku/ch-2.p622
5 files changed, 100 insertions, 0 deletions
diff --git a/challenge-082/jaldhar-h-vyas/blog.txt b/challenge-082/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..9fd1b340d7
--- /dev/null
+++ b/challenge-082/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2020/10/perl_weekly_challenge_week_82.html
diff --git a/challenge-082/jaldhar-h-vyas/perl/ch-1.pl b/challenge-082/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..2b79166e5c
--- /dev/null
+++ b/challenge-082/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <M> <N>
+-USAGE-
+
+ exit 0;
+}
+
+sub factors {
+ my ($n) = @_;
+
+ return grep { $n % $_ == 0; } 1 .. $n / 2;
+}
+
+if (scalar @ARGV != 2) {
+ usage;
+}
+
+my ($M, $N) = @ARGV;
+
+my %f;
+map { $f{$_}++; } factors($M);
+map { $f{$_}++; } factors($N);
+
+say join q{, }, sort grep { $f{$_} == 2; } keys %f; \ No newline at end of file
diff --git a/challenge-082/jaldhar-h-vyas/perl/ch-2.pl b/challenge-082/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..6a8cbe4adc
--- /dev/null
+++ b/challenge-082/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <A> <B> <C>
+-USAGE-
+
+ exit 0;
+}
+
+if (scalar @ARGV != 3) {
+ usage;
+}
+
+my ($A, $B, $C) = @ARGV;
+my $result;
+my $copy = $C;
+
+while (length $A || length $B) {
+ "$A\0$copy" =~ /\A (.*) .* \0 \1/msx;
+ my $prefixa = $1;
+ $result .= $prefixa;
+ $A =~ s/\A $prefixa//msx;
+ $copy =~ s/\A $prefixa//msx;
+
+ "$B\0$copy" =~ /\A (.*) .* \0 \1/msx;
+ my $prefixb = $1;
+ $result .= $prefixb;
+ $B =~ s/\A $prefixb//msx;
+ $copy =~ s/\A $prefixb//msx;
+}
+
+say $result eq $C ? 1 : 0; \ No newline at end of file
diff --git a/challenge-082/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-082/jaldhar-h-vyas/raku/ch-1.p6
new file mode 100755
index 0000000000..c0d02545a5
--- /dev/null
+++ b/challenge-082/jaldhar-h-vyas/raku/ch-1.p6
@@ -0,0 +1,9 @@
+#!/usr/bin/perl6
+
+sub factors(Int $n) {
+ return (1 .. $n div 2).grep({ $n %% $_ });
+}
+
+sub MAIN(Int $M, Int $N) {
+ (factors($M) ∩ factors($N)).keys.sort.join(', ').say;
+} \ No newline at end of file
diff --git a/challenge-082/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-082/jaldhar-h-vyas/raku/ch-2.p6
new file mode 100755
index 0000000000..0800a84273
--- /dev/null
+++ b/challenge-082/jaldhar-h-vyas/raku/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/perl6
+
+sub MAIN(Str $A, Str $B, Str $C) {
+ my $result;
+ my ($a, $b, $c) = ($A, $B, $C);
+
+ while ($a.chars || $b.chars) {
+ "$a\0$c" ~~ /^ (.*) .* \0 $0/;
+ my $prefixa = $0;
+ $result ~= $prefixa;
+ $a ~~ s/^ $prefixa//;
+ $c ~~ s/^ $prefixa//;
+
+ "$b\0$c" ~~ /^ (.*) .* \0 $0/;
+ my $prefixb = $0;
+ $result ~= $prefixb;
+ $b ~~ s/^ $prefixb//;
+ $c ~~ s/^ $prefixb//;
+ }
+
+ say ($result ~~ $C) ?? 1 !! 0;
+} \ No newline at end of file