diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2020-11-08 20:23:08 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2020-11-08 20:23:08 -0500 |
| commit | 05714a5221c14f6807f8aab2d2982c23d9d4ee54 (patch) | |
| tree | 85a7047a3f61c1776743a9b8ee966bd5a04ecd98 /challenge-085 | |
| parent | a06ad8694fa7a62d92e423255f0f0ca50778a87a (diff) | |
| download | perlweeklychallenge-club-05714a5221c14f6807f8aab2d2982c23d9d4ee54.tar.gz perlweeklychallenge-club-05714a5221c14f6807f8aab2d2982c23d9d4ee54.tar.bz2 perlweeklychallenge-club-05714a5221c14f6807f8aab2d2982c23d9d4ee54.zip | |
Challenge 85 by Jaldhar H. Vyas
Diffstat (limited to 'challenge-085')
| -rw-r--r-- | challenge-085/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-085/jaldhar-h-vyas/perl/ch-1.pl | 38 | ||||
| -rwxr-xr-x | challenge-085/jaldhar-h-vyas/perl/ch-2.pl | 27 | ||||
| -rwxr-xr-x | challenge-085/jaldhar-h-vyas/raku/ch-1.sh | 1 | ||||
| -rwxr-xr-x | challenge-085/jaldhar-h-vyas/raku/ch-2.p6 | 26 |
5 files changed, 93 insertions, 0 deletions
diff --git a/challenge-085/jaldhar-h-vyas/blog.txt b/challenge-085/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..4879b2c523 --- /dev/null +++ b/challenge-085/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2020/11/perl_weekly_challenge_week_85.html diff --git a/challenge-085/jaldhar-h-vyas/perl/ch-1.pl b/challenge-085/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..c8dfce96dc --- /dev/null +++ b/challenge-085/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +use 5.020; +use warnings; + +sub combinations { + my @list = @{$_[0]}; + my $length = $_[1]; + + if ($length <= 1) { + return map [$_], @list; + } + + my @combos; + + for (my $i = 0; $i + $length <= scalar @list; $i++) { + my $val = $list[$i]; + my @rest = @list[$i + 1 .. $#list]; + for my $c (combinations(\@rest, $length - 1)) { + push @combos, [$val, @{$c}] ; + } + } + + return @combos; +} + +my $results = 0; + +for my $combo (combinations(\@ARGV, 3)) { + my $total = 0; + for my $elem (@{$combo}) { + $total += $elem; + } + if ($total > 1.0 && $total < 2.0) { + $results++; + } +} + +say $results ? 1 : 0; diff --git a/challenge-085/jaldhar-h-vyas/perl/ch-2.pl b/challenge-085/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..13f84df6e6 --- /dev/null +++ b/challenge-085/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl +use 5.020; +use warnings; + +sub isPower { + my ($num) = @_; + my @results; + + if ($num > 1) { + for my $m (2 .. sqrt($num)) { + my $n = 2; + my $p = $m ** $n; + + while ($p <= $num && $p > 0) { + if ($p == $num) { + push @results, join q{^}, ($m, $n); + } + $n++; + $p = $m ** $n; + } + } + } + + return @results; +} + +say scalar isPower(shift) ? 1 : 0;
\ No newline at end of file diff --git a/challenge-085/jaldhar-h-vyas/raku/ch-1.sh b/challenge-085/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..fc1f039c49 --- /dev/null +++ b/challenge-085/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1 @@ +perl6 -e 'say @*ARGS.combinations(3).grep({ ([+] @_) ~~ 1.0 .. 2.0 }).elems ?? 1 !! 0;' $@ diff --git a/challenge-085/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-085/jaldhar-h-vyas/raku/ch-2.p6 new file mode 100755 index 0000000000..edfac8bee6 --- /dev/null +++ b/challenge-085/jaldhar-h-vyas/raku/ch-2.p6 @@ -0,0 +1,26 @@ +#!/usr/bin/perl6 + +sub isPower($num) { + my @results; + + if $num > 1 { + for 2 .. sqrt($num) -> $m { + my $n = 2; + my $p = $m ** $n; + + while $p <= $num && $p > 0 { + if $p == $num { + @results.push([$m, $n].join(q{^})); + } + $n++; + $p = $m ** $n; + } + } + } + + return @results; +} + +sub MAIN(Int $N) { + say isPower($N).elems ?? 1 !! 0; +}
\ No newline at end of file |
