aboutsummaryrefslogtreecommitdiff
path: root/challenge-085
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-11-09 02:03:48 +0000
committerGitHub <noreply@github.com>2020-11-09 02:03:48 +0000
commit324933ae795162fb2dec922451e7641a61fc59a3 (patch)
treeb791b3389dd96a9f169c20109a7fccdd2585a74f /challenge-085
parente086053076ad9f4844a856b9540009fcadc98a7a (diff)
parent05714a5221c14f6807f8aab2d2982c23d9d4ee54 (diff)
downloadperlweeklychallenge-club-324933ae795162fb2dec922451e7641a61fc59a3.tar.gz
perlweeklychallenge-club-324933ae795162fb2dec922451e7641a61fc59a3.tar.bz2
perlweeklychallenge-club-324933ae795162fb2dec922451e7641a61fc59a3.zip
Merge pull request #2731 from jaldhar/challenge-085
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