diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2022-01-23 22:58:29 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2022-01-23 22:58:29 -0500 |
| commit | 0397e24ba53113fd83841e002bddc326c7d853ae (patch) | |
| tree | 99632a35ab210765853309a0aeb5a1d7c1082ac9 /challenge-148 | |
| parent | 8fe7faaf1fc16061cb97428bd6e3af64bd6be2aa (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-148/jaldhar-h-vyas/perl/ch-1.pl | 46 | ||||
| -rwxr-xr-x | challenge-148/jaldhar-h-vyas/perl/ch-2.pl | 23 | ||||
| -rwxr-xr-x | challenge-148/jaldhar-h-vyas/raku/ch-1.raku | 50 | ||||
| -rwxr-xr-x | challenge-148/jaldhar-h-vyas/raku/ch-2.raku | 22 |
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; + } + } + } + } + } +} |
