diff options
| -rw-r--r-- | challenge-191/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-191/jaldhar-h-vyas/perl/ch-1.pl | 7 | ||||
| -rwxr-xr-x | challenge-191/jaldhar-h-vyas/perl/ch-2.pl | 52 | ||||
| -rwxr-xr-x | challenge-191/jaldhar-h-vyas/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-191/jaldhar-h-vyas/raku/ch-2.raku | 19 |
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 |
