aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-21 19:37:43 +0000
committerGitHub <noreply@github.com>2021-11-21 19:37:43 +0000
commit4649e993af5d655bf1cb5db3594b2f5ee2e2a8ed (patch)
tree773f290f03dc19131493413b5d2cf402e6c1ae0a
parente232e36a67dc5df1fcd1825de84b91934eb5eb1e (diff)
parent412f2a9d0aa588b4a82b7ec5ab53a3fd09710bde (diff)
downloadperlweeklychallenge-club-4649e993af5d655bf1cb5db3594b2f5ee2e2a8ed.tar.gz
perlweeklychallenge-club-4649e993af5d655bf1cb5db3594b2f5ee2e2a8ed.tar.bz2
perlweeklychallenge-club-4649e993af5d655bf1cb5db3594b2f5ee2e2a8ed.zip
Merge pull request #5254 from jaldhar/challenge-139
Challenge 139 by Jaldhar H. Vyas.
-rw-r--r--challenge-139/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-139/jaldhar-h-vyas/perl/ch-1.sh3
-rwxr-xr-xchallenge-139/jaldhar-h-vyas/perl/ch-2.pl56
-rwxr-xr-xchallenge-139/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-139/jaldhar-h-vyas/raku/ch-2.raku35
5 files changed, 98 insertions, 0 deletions
diff --git a/challenge-139/jaldhar-h-vyas/blog.txt b/challenge-139/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..93ce8e6a01
--- /dev/null
+++ b/challenge-139/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2021/11/perl_weekly_challenge_week_139.html
diff --git a/challenge-139/jaldhar-h-vyas/perl/ch-1.sh b/challenge-139/jaldhar-h-vyas/perl/ch-1.sh
new file mode 100755
index 0000000000..6ab115d243
--- /dev/null
+++ b/challenge-139/jaldhar-h-vyas/perl/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+perl -Mexperimental=smartmatch -E 'say [@ARGV] ~~ [sort { $a <=> $b } @ARGV] ? 1 : 0;' $@ \ No newline at end of file
diff --git a/challenge-139/jaldhar-h-vyas/perl/ch-2.pl b/challenge-139/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..039962727d
--- /dev/null
+++ b/challenge-139/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+
+sub isPrime {
+ my ($n) = @_;
+
+ if ($n < 2) {
+ return undef;
+ }
+
+ if ($n == 2) {
+ return 1;
+ }
+
+ for my $i (2 .. sqrt($n)) {
+ if ($n % $i == 0) {
+ return undef;
+ }
+ }
+
+ return 1;
+}
+
+sub period {
+ my ($n) = @_;
+ my $remainder = 1;
+ my $i = 1;
+ my %position;
+
+ while (1) {
+ $remainder = (10 * $remainder) % $n;
+ if (exists $position{$remainder}) {
+ return $i - $position{$remainder};
+ }
+ $position{$remainder} = $i;
+ $i++;
+ }
+}
+
+my $p = 2;
+my @longPrimes;
+
+while (scalar @longPrimes < 5) {
+ $p++;
+
+ unless (isPrime($p)) {
+ next;
+ }
+
+ if (period($p) == $p - 1) {
+ push @longPrimes, $p;
+ }
+}
+
+say join q{, }, @longPrimes;
diff --git a/challenge-139/jaldhar-h-vyas/raku/ch-1.sh b/challenge-139/jaldhar-h-vyas/raku/ch-1.sh
new file mode 100755
index 0000000000..5dcb61d6f1
--- /dev/null
+++ b/challenge-139/jaldhar-h-vyas/raku/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e 'say @*ARGS ~~ @*ARGS.sort({ $^a <=> $^b }) ?? 1 !! 0' $@ \ No newline at end of file
diff --git a/challenge-139/jaldhar-h-vyas/raku/ch-2.raku b/challenge-139/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..88dca901d1
--- /dev/null
+++ b/challenge-139/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,35 @@
+#!/usr/bin/raku
+
+sub period(Int $n) {
+ my $remainder = 1;
+ my $i = 1;
+ my %position;
+
+ loop {
+ $remainder = (10 * $remainder) % $n;
+ if %position{$remainder}:exists {
+ return $i - %position{$remainder};
+ }
+ %position{$remainder} = $i;
+ $i++;
+ }
+}
+
+sub MAIN() {
+ my $p = 2;
+ my @longPrimes;
+
+ while (@longPrimes.elems < 5) {
+ $p++;
+
+ unless $p.is-prime {
+ next;
+ }
+
+ if period($p) == $p - 1 {
+ @longPrimes.push($p);
+ }
+ }
+
+ @longPrimes.join(q{, }).say;
+} \ No newline at end of file