diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-11-21 19:37:43 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-21 19:37:43 +0000 |
| commit | 4649e993af5d655bf1cb5db3594b2f5ee2e2a8ed (patch) | |
| tree | 773f290f03dc19131493413b5d2cf402e6c1ae0a | |
| parent | e232e36a67dc5df1fcd1825de84b91934eb5eb1e (diff) | |
| parent | 412f2a9d0aa588b4a82b7ec5ab53a3fd09710bde (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-139/jaldhar-h-vyas/perl/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-139/jaldhar-h-vyas/perl/ch-2.pl | 56 | ||||
| -rwxr-xr-x | challenge-139/jaldhar-h-vyas/raku/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-139/jaldhar-h-vyas/raku/ch-2.raku | 35 |
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 |
