diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2025-01-26 20:48:47 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2025-01-26 20:48:47 -0500 |
| commit | dc1546854a9747caac96a8c99e9e11a3e077870b (patch) | |
| tree | c39bc8e37695f2b7b0a141fd1189043796fdfa83 | |
| parent | 5e6595eac1c00b30cad16ac213fa97bf72e58459 (diff) | |
| download | perlweeklychallenge-club-dc1546854a9747caac96a8c99e9e11a3e077870b.tar.gz perlweeklychallenge-club-dc1546854a9747caac96a8c99e9e11a3e077870b.tar.bz2 perlweeklychallenge-club-dc1546854a9747caac96a8c99e9e11a3e077870b.zip | |
Challenge 305 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-305/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-305/jaldhar-h-vyas/perl/ch-1.pl | 32 | ||||
| -rwxr-xr-x | challenge-305/jaldhar-h-vyas/perl/ch-2.pl | 22 | ||||
| -rwxr-xr-x | challenge-305/jaldhar-h-vyas/raku/ch-1.raku | 14 | ||||
| -rwxr-xr-x | challenge-305/jaldhar-h-vyas/raku/ch-2.raku | 16 |
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; +} + |
