aboutsummaryrefslogtreecommitdiff
path: root/challenge-082
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-10-19 00:09:05 +0100
committerGitHub <noreply@github.com>2020-10-19 00:09:05 +0100
commit61189267f56ff23c3610e7ef538168b41a7b31e1 (patch)
tree394bda68c64eb95ee8a2f03a62136dcd0065e2ce /challenge-082
parenta37b88ea9189720b8614259b52a1c2742631dd26 (diff)
parent47554b5efbfc0a2798f1f7391c253d1082082518 (diff)
downloadperlweeklychallenge-club-61189267f56ff23c3610e7ef538168b41a7b31e1.tar.gz
perlweeklychallenge-club-61189267f56ff23c3610e7ef538168b41a7b31e1.tar.bz2
perlweeklychallenge-club-61189267f56ff23c3610e7ef538168b41a7b31e1.zip
Merge pull request #2545 from pkmnx/new-branch
submission for solution #82.
Diffstat (limited to 'challenge-082')
-rw-r--r--challenge-082/pkmnx/README1
-rw-r--r--challenge-082/pkmnx/gnat/ch_1.adb28
-rwxr-xr-xchallenge-082/pkmnx/raku/ch-1.raku9
-rwxr-xr-xchallenge-082/pkmnx/raku/ch-2.raku30
4 files changed, 68 insertions, 0 deletions
diff --git a/challenge-082/pkmnx/README b/challenge-082/pkmnx/README
new file mode 100644
index 0000000000..e868dd4a54
--- /dev/null
+++ b/challenge-082/pkmnx/README
@@ -0,0 +1 @@
+Solution by Philip Hood.
diff --git a/challenge-082/pkmnx/gnat/ch_1.adb b/challenge-082/pkmnx/gnat/ch_1.adb
new file mode 100644
index 0000000000..c086facc68
--- /dev/null
+++ b/challenge-082/pkmnx/gnat/ch_1.adb
@@ -0,0 +1,28 @@
+
+with ada.command_line; use ada.command_line;
+with ada.Text_IO; use ada.Text_IO;
+with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
+
+procedure ch_1 is
+ M : Long_Integer := Long_Integer'Value(argument (1));
+ N : Long_Integer := Long_Integer'Value(argument (2));
+ p : Long_Integer := 0;
+ gcd : Long_Integer := 0;
+ i : Long_Integer := 0;
+begin
+
+ gcd := N;
+
+ while (M /= 0) loop
+ p := gcd;
+ gcd := M;
+ M := p mod M;
+ end loop;
+
+ for i in 1 .. gcd loop
+ if ( ( gcd mod i ) = 0 ) then
+ put( Long_Integer'Image(i) );
+ end if;
+ end loop;
+
+end ch_1;
diff --git a/challenge-082/pkmnx/raku/ch-1.raku b/challenge-082/pkmnx/raku/ch-1.raku
new file mode 100755
index 0000000000..e41011c6a4
--- /dev/null
+++ b/challenge-082/pkmnx/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#!/usr/bin/env rakudo
+
+sub MAIN( Int $m = 18, Int $n = 12, $gc = $m gcd $n ) {
+
+ die( "too many args!" ) if @*ARGS.end > 1;
+
+ ( 1 .. $gc ).grep(-> $k { $gc %% $k } ).say;
+
+}
diff --git a/challenge-082/pkmnx/raku/ch-2.raku b/challenge-082/pkmnx/raku/ch-2.raku
new file mode 100755
index 0000000000..ec5640eb77
--- /dev/null
+++ b/challenge-082/pkmnx/raku/ch-2.raku
@@ -0,0 +1,30 @@
+#!/usr/bin/env rakudo
+
+sub MAIN( Str $A = "XXY", Str $B = "XXZ", Str $C = "XXXXZY" ) {
+
+ my @a = (0 .. $A.chars -1 ).map(-> $k { $A.substr($k, 1).chomp() } );
+ my @b = (0 .. $B.chars -1 ).map(-> $k { $B.substr($k, 1).chomp() } );
+ my @c = (0 .. $C.chars -1 ).map(-> $k { $C.substr($k, 1).chomp() } );
+
+ die("bad input!") unless ( @a.elems && @b.elems && @c.elems );
+
+ while ( @a.elems || @b.elems || @c.elems ) {
+
+ if ( @a.elems && @a.head eq @c.head ) {
+ @a.shift();
+ @c.shift();
+ }
+
+ if ( @b.elems && @b.head eq @c.head ) {
+ @b.shift();
+ @c.shift();
+ }
+
+ last if ( (! @a.elems ) && @b.join("") ne @c.join("") );
+ last if ( (! @b.elems ) && @a.join("") ne @c.join("") );
+
+ }
+
+ ( @a.elems + @b.elems + @c.elems >0 ?? "0" !! "1" ).say;
+
+}