aboutsummaryrefslogtreecommitdiff
path: root/challenge-085
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2020-11-08 20:23:08 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2020-11-08 20:23:08 -0500
commit05714a5221c14f6807f8aab2d2982c23d9d4ee54 (patch)
tree85a7047a3f61c1776743a9b8ee966bd5a04ecd98 /challenge-085
parenta06ad8694fa7a62d92e423255f0f0ca50778a87a (diff)
downloadperlweeklychallenge-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.txt1
-rwxr-xr-xchallenge-085/jaldhar-h-vyas/perl/ch-1.pl38
-rwxr-xr-xchallenge-085/jaldhar-h-vyas/perl/ch-2.pl27
-rwxr-xr-xchallenge-085/jaldhar-h-vyas/raku/ch-1.sh1
-rwxr-xr-xchallenge-085/jaldhar-h-vyas/raku/ch-2.p626
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