aboutsummaryrefslogtreecommitdiff
path: root/challenge-148
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2022-01-23 22:58:29 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2022-01-23 22:58:29 -0500
commit0397e24ba53113fd83841e002bddc326c7d853ae (patch)
tree99632a35ab210765853309a0aeb5a1d7c1082ac9 /challenge-148
parent8fe7faaf1fc16061cb97428bd6e3af64bd6be2aa (diff)
downloadperlweeklychallenge-club-0397e24ba53113fd83841e002bddc326c7d853ae.tar.gz
perlweeklychallenge-club-0397e24ba53113fd83841e002bddc326c7d853ae.tar.bz2
perlweeklychallenge-club-0397e24ba53113fd83841e002bddc326c7d853ae.zip
Challenge 148 by Jaldhar H. Vyas.
Diffstat (limited to 'challenge-148')
-rw-r--r--challenge-148/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-148/jaldhar-h-vyas/perl/ch-1.pl46
-rwxr-xr-xchallenge-148/jaldhar-h-vyas/perl/ch-2.pl23
-rwxr-xr-xchallenge-148/jaldhar-h-vyas/raku/ch-1.raku50
-rwxr-xr-xchallenge-148/jaldhar-h-vyas/raku/ch-2.raku22
5 files changed, 142 insertions, 0 deletions
diff --git a/challenge-148/jaldhar-h-vyas/blog.txt b/challenge-148/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..1792cfc158
--- /dev/null
+++ b/challenge-148/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2022/01/perl_weekly_challenge_week_148.html
diff --git a/challenge-148/jaldhar-h-vyas/perl/ch-1.pl b/challenge-148/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..a9916d0f45
--- /dev/null
+++ b/challenge-148/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+my %spelling = (
+ 1 => 'one',
+ 2 => 'two',
+ 3 => 'three',
+ 4 => 'four',
+ 5 => 'five',
+ 6 => 'six',
+ 7 => 'seven',
+ 8 => 'eight',
+ 9 => 'nine',
+ 10 => 'ten',
+ 11 => 'eleven',
+ 12 => 'twelve',
+ 13 => 'thirteen',
+ 14 => 'fourteen',
+ 15 => 'fifteen',
+ 16 => 'sixteen',
+ 17 => 'seventeen',
+ 18 => 'eighteen',
+ 19 => 'nineteen',
+ 100 => 'hundred'
+);
+
+my @tens = (
+ undef,
+ undef,
+ 'twenty',
+ 'thirty',
+ 'forty',
+ 'fifty',
+ 'sixty',
+ 'seventy',
+ 'eighty',
+ 'ninety',
+);
+
+for my $n (20 .. 99) {
+ my ($ten, $unit) = split //, $n;
+ $spelling{$n} = $tens[$ten] . ($unit == 0 ? q{} : "-$spelling{$unit}");
+}
+
+say join q{, }, sort { $a <=> $b } grep { $spelling{$_} !~ /e/; } keys %spelling;
diff --git a/challenge-148/jaldhar-h-vyas/perl/ch-2.pl b/challenge-148/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..c61e9e4779
--- /dev/null
+++ b/challenge-148/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+use Math::Round qw/ nearest /;
+
+my $count = 0;
+for my $a (1 .. 100) {
+ for my $b (1 .. 100) {
+ for my $c (1 .. 100) {
+ my $bc = $b * sqrt($c);
+ my $left = ($a + $bc) ** (1/3);
+ my $x = $a - $bc;
+ my $right = ($x >= 0) ? $x ** (1/3) : -abs($x) ** (1/3);
+ if (nearest(0.001, $left + $right) == 1.0) {
+ $count++;
+ say join q{, }, ($a, $b, $c);
+ if ($count > 4) {
+ exit;
+ }
+ }
+ }
+ }
+}
diff --git a/challenge-148/jaldhar-h-vyas/raku/ch-1.raku b/challenge-148/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..3b27c3c752
--- /dev/null
+++ b/challenge-148/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,50 @@
+#!/usr/bin/raku
+
+sub MAIN() {
+ my %spelling = (
+ 1 => 'one',
+ 2 => 'two',
+ 3 => 'three',
+ 4 => 'four',
+ 5 => 'five',
+ 6 => 'six',
+ 7 => 'seven',
+ 8 => 'eight',
+ 9 => 'nine',
+ 10 => 'ten',
+ 11 => 'eleven',
+ 12 => 'twelve',
+ 13 => 'thirteen',
+ 14 => 'fourteen',
+ 15 => 'fifteen',
+ 16 => 'sixteen',
+ 17 => 'seventeen',
+ 18 => 'eighteen',
+ 19 => 'nineteen',
+ 100 => 'hundred'
+ );
+
+ my @tens =
+ Nil,
+ Nil,
+ 'twenty',
+ 'thirty',
+ 'forty',
+ 'fifty',
+ 'sixty',
+ 'seventy',
+ 'eighty',
+ 'ninety',
+ ;
+
+ for 20 .. 99 -> $n {
+ my ($ten, $unit) = $n.comb;
+ %spelling{$n} = @tens[$ten] ~ ($unit == 0 ?? q{} !! "-%spelling{$unit}");
+ }
+
+ %spelling.keys
+ .grep({ !%spelling{$_}.match(/e/); })
+ .sort({ $^a <=> $^b })
+ .join(q{, })
+ .say;
+}
diff --git a/challenge-148/jaldhar-h-vyas/raku/ch-2.raku b/challenge-148/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..228c0260df
--- /dev/null
+++ b/challenge-148/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/raku
+
+sub MAIN() {
+ my $count = 0;
+ for 1 .. 100 -> $a {
+ for 1 .. 100 -> $b {
+ for 1 .. 100 -> $c {
+ my $bc = $b * sqrt($c);
+ my $left = ($a + $bc) ** (1/3);
+ my $x = $a - $bc;
+ my $right = $x >= 0 ?? $x ** (1/3) !! -$x.abs ** (1/3);
+ if ($left + $right).round(0.001) == 1.0 {
+ $count++;
+ ($a, $b, $c).join(q{, }).say;
+ if $count > 4 {
+ exit;
+ }
+ }
+ }
+ }
+ }
+}