From b51f7463e586fe750a0c909dd4936cc092c33843 Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sun, 9 Jan 2022 18:50:01 -0500 Subject: Challenge 146 by Jaldhar H. Vyas. --- challenge-146/jaldhar-h-vyas/blog.txt | 1 + challenge-146/jaldhar-h-vyas/perl/ch-1.pl | 45 +++++++++++++++++++++++++++++ challenge-146/jaldhar-h-vyas/perl/ch-2.pl | 26 +++++++++++++++++ challenge-146/jaldhar-h-vyas/raku/ch-1.sh | 3 ++ challenge-146/jaldhar-h-vyas/raku/ch-2.raku | 21 ++++++++++++++ 5 files changed, 96 insertions(+) create mode 100644 challenge-146/jaldhar-h-vyas/blog.txt create mode 100755 challenge-146/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-146/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-146/jaldhar-h-vyas/raku/ch-1.sh create mode 100755 challenge-146/jaldhar-h-vyas/raku/ch-2.raku 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))}'"; +} -- cgit