aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-01-27 03:24:43 +0000
committerGitHub <noreply@github.com>2025-01-27 03:24:43 +0000
commitdf64ce81ad8b1e4cb1d4936399e901a93269197d (patch)
tree829e8c661fe052bdc1dceea53375a25ce80d9946
parent84a36e64320f7c38085c52a038dac24c014478fb (diff)
parentdc1546854a9747caac96a8c99e9e11a3e077870b (diff)
downloadperlweeklychallenge-club-df64ce81ad8b1e4cb1d4936399e901a93269197d.tar.gz
perlweeklychallenge-club-df64ce81ad8b1e4cb1d4936399e901a93269197d.tar.bz2
perlweeklychallenge-club-df64ce81ad8b1e4cb1d4936399e901a93269197d.zip
Merge pull request #11494 from jaldhar/challenge-305
Challenge 305 by Jaldhar H. Vyas.
-rw-r--r--challenge-305/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-305/jaldhar-h-vyas/perl/ch-1.pl32
-rwxr-xr-xchallenge-305/jaldhar-h-vyas/perl/ch-2.pl22
-rwxr-xr-xchallenge-305/jaldhar-h-vyas/raku/ch-1.raku14
-rwxr-xr-xchallenge-305/jaldhar-h-vyas/raku/ch-2.raku16
5 files changed, 85 insertions, 0 deletions
diff --git a/challenge-305/jaldhar-h-vyas/blog.txt b/challenge-305/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..1829e8e57d
--- /dev/null
+++ b/challenge-305/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/01/perl_weekly_challenge_week_305.html
diff --git a/challenge-305/jaldhar-h-vyas/perl/ch-1.pl b/challenge-305/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..e67f6d893b
--- /dev/null
+++ b/challenge-305/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+use v5.38;
+use builtin qw/ true false /;
+no warnings 'experimental::builtin';
+
+sub isPrime($n) {
+ if ($n < 2) {
+ return false;
+ }
+
+ if ($n == 2) {
+ return true;
+ }
+
+ for my $i (2 .. sqrt($n)) {
+ if ($n % $i == 0) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+my @binary = @ARGV;
+my @results;
+
+for my $i (0 .. (scalar @binary - 1)) {
+ push @results, isPrime(oct('0b' . join q{}, @binary[0 .. $i]));
+}
+
+say join q{ }, map { $_ ? 'true' : 'false' } @results;
+
diff --git a/challenge-305/jaldhar-h-vyas/perl/ch-2.pl b/challenge-305/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..b6499fcbd8
--- /dev/null
+++ b/challenge-305/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+use v5.38;
+
+my $alien = shift;
+my @words = @ARGV;
+
+my $i = 0;
+my %order = map { $_ => $i++ } split //, $alien;
+
+say
+ join q{ },
+ sort {
+ my @a = split //, $a;
+ my @b = split //, $b;
+ for my $i (keys @a) {
+ if ($order{$a[$i]} != $order{$b[$i]}) {
+ return $order{$a[$i]} <=> $order{$b[$i]};
+ }
+ }
+ return @a <=> @b;
+ }
+ @words;
diff --git a/challenge-305/jaldhar-h-vyas/raku/ch-1.raku b/challenge-305/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..2f01394299
--- /dev/null
+++ b/challenge-305/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,14 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@binary
+) {
+ my @results;
+
+ for 0 .. @binary.end -> $i {
+ @results.push(@binary[0 .. $i].join.parse-base(2).is-prime);
+ }
+
+ @results.join(q{ }).say;
+
+}
diff --git a/challenge-305/jaldhar-h-vyas/raku/ch-2.raku b/challenge-305/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..2f54e6b110
--- /dev/null
+++ b/challenge-305/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $alien,
+ *@words
+) {
+ my %order = $alien.comb.antipairs;
+
+ @words
+ .sort({
+ %order{ $^a.comb } cmp %order{ $^b.comb };
+ })
+ .join(q{ })
+ .say;
+}
+