aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-191/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-191/jaldhar-h-vyas/perl/ch-1.pl7
-rwxr-xr-xchallenge-191/jaldhar-h-vyas/perl/ch-2.pl52
-rwxr-xr-xchallenge-191/jaldhar-h-vyas/raku/ch-1.raku9
-rwxr-xr-xchallenge-191/jaldhar-h-vyas/raku/ch-2.raku19
5 files changed, 88 insertions, 0 deletions
diff --git a/challenge-191/jaldhar-h-vyas/blog.txt b/challenge-191/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..85942c9eaf
--- /dev/null
+++ b/challenge-191/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2022/11/perl_weekly_challenge_week_191.html \ No newline at end of file
diff --git a/challenge-191/jaldhar-h-vyas/perl/ch-1.pl b/challenge-191/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..2d8d669209
--- /dev/null
+++ b/challenge-191/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,7 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+my @sorted = sort @ARGV;
+
+say $sorted[-2] * 2 <= $sorted[-1] ? 1 : -1;
diff --git a/challenge-191/jaldhar-h-vyas/perl/ch-2.pl b/challenge-191/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..591ae28df5
--- /dev/null
+++ b/challenge-191/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,52 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+use English;
+
+sub isCute {
+ my ($list) = @_;
+ my $i = 1;
+
+ for my $elem (@{$list}) {
+ if ($i % $elem && $elem % $i) {
+ return undef;
+ }
+ $i++;
+ }
+
+ return 1;
+}
+
+sub permute (&@) {
+ my $code = shift;
+ my @idx = 0..$#_;
+ while ( $code->(@_[@idx]) ) {
+ my $p = $#idx;
+ --$p while $idx[$p-1] > $idx[$p];
+ my $q = $p or return;
+ push @idx, reverse splice @idx, $p;
+ ++$q while $idx[$p-1] > $idx[$q];
+ @idx[$p-1,$q]=@idx[$q,$p-1];
+ }
+}
+
+sub usage {
+print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <n>
+
+ <n> integer from 1 to 15 inclusive
+-USAGE-
+ exit(0);
+}
+
+my $n = shift // usage;
+
+if ($n <= 0 || $n >= 16) {
+ usage;
+}
+
+ my @perms;
+permute { push @perms, \@_; } (1 .. $n);
+
+say scalar grep { isCute($_) } @perms;
diff --git a/challenge-191/jaldhar-h-vyas/raku/ch-1.raku b/challenge-191/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..48ea4a43da
--- /dev/null
+++ b/challenge-191/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@list
+) {
+ my @sorted = @list.sort;
+
+ say @sorted[*-2] * 2 <= @sorted[*-1] ?? 1 !! -1;
+} \ No newline at end of file
diff --git a/challenge-191/jaldhar-h-vyas/raku/ch-2.raku b/challenge-191/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..06fc2f8cea
--- /dev/null
+++ b/challenge-191/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/raku
+
+sub isCute(@list) {
+ my $i = 1;
+
+ for @list -> $elem {
+ if ($i % $elem && $elem % $i) {
+ return False;
+ }
+ $i++;
+ }
+ return True;
+}
+
+sub MAIN(
+ Int $n where { $_ ~~ 1 .. 15 } #= integer from 1 to 15 inclusive
+) {
+ (1 .. $n).permutations.grep({ isCute(@$_); }).elems.say;
+} \ No newline at end of file