aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-146/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-146/jaldhar-h-vyas/perl/ch-1.pl45
-rwxr-xr-xchallenge-146/jaldhar-h-vyas/perl/ch-2.pl26
-rwxr-xr-xchallenge-146/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-146/jaldhar-h-vyas/raku/ch-2.raku21
5 files changed, 96 insertions, 0 deletions
diff --git a/challenge-146/jaldhar-h-vyas/blog.txt b/challenge-146/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..e3f3f96c38
--- /dev/null
+++ b/challenge-146/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2022/01/perl_weekly_challenge_week_146.html
diff --git a/challenge-146/jaldhar-h-vyas/perl/ch-1.pl b/challenge-146/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..132d6054bf
--- /dev/null
+++ b/challenge-146/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,45 @@
+#!/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 $prime;
+my $count = 1;
+
+do {
+ $prime = nextPrime();
+} while ($count++ < 10_001);
+
+say $prime; \ No newline at end of file
diff --git a/challenge-146/jaldhar-h-vyas/perl/ch-2.pl b/challenge-146/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..2e65900401
--- /dev/null
+++ b/challenge-146/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+
+sub parent {
+ my ($fraction) = @_;
+
+ my ($numerator, $denominator) = split m{/}, $fraction;
+ unless (defined $numerator && $numerator =~ /^\d+$/ && defined $denominator
+ && $denominator =~ /^\d+$/) {
+ return q{};
+ }
+
+ if ($numerator < $denominator) {
+ return "$numerator/" . abs($denominator - $numerator);
+ } elsif ($numerator > $denominator) {
+ return abs($denominator - $numerator). "/$denominator";
+ } else {
+ return q{};
+ }
+}
+
+my ($member) = shift // die "Need a string.";
+
+say "parent = '", parent($member), "' and grandparent = '",
+ parent(parent($member)), "'";
diff --git a/challenge-146/jaldhar-h-vyas/raku/ch-1.sh b/challenge-146/jaldhar-h-vyas/raku/ch-1.sh
new file mode 100755
index 0000000000..8f323c87de
--- /dev/null
+++ b/challenge-146/jaldhar-h-vyas/raku/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ raku -e 'say (1 .. *).grep({ .is-prime })[10_000]'
diff --git a/challenge-146/jaldhar-h-vyas/raku/ch-2.raku b/challenge-146/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..7c0e7e13bc
--- /dev/null
+++ b/challenge-146/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/raku
+
+sub parent(Str $fraction) {
+ my ($numerator, $denominator) = $fraction.split(q{/}).map({ .Int(); });
+ unless ($numerator ~~ Int) && ($denominator ~~ Int) {
+ return q{};
+ }
+
+ if $numerator < $denominator {
+ return "$numerator/{($denominator - $numerator).abs}";
+ } elsif $numerator > $denominator {
+ return "{($denominator - $numerator).abs}/$denominator";
+ } else {
+ return q{};
+ }
+}
+
+sub MAIN(Str $member) {
+
+ say "parent = '{parent($member)}' and grandparent = '{parent(parent($member))}'";
+}