From 1613713f45ea24f465a07fe7f53e37e18c679592 Mon Sep 17 00:00:00 2001 From: Philip Hood Date: Sat, 17 Oct 2020 19:32:20 -0400 Subject: submission for solution #82. --- challenge-082/pkmnx/README | 1 + challenge-082/pkmnx/raku/ch-1.raku | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 challenge-082/pkmnx/README create mode 100755 challenge-082/pkmnx/raku/ch-1.raku 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/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; + +} -- cgit From 8755614dd314abf4185faf81a246c250055630eb Mon Sep 17 00:00:00 2001 From: Philip Hood Date: Sun, 18 Oct 2020 00:05:53 -0400 Subject: submission for solution #82, challenge #2. --- challenge-082/pkmnx/raku/ch-2.raku | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 challenge-082/pkmnx/raku/ch-2.raku 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; + +} -- cgit From 47554b5efbfc0a2798f1f7391c253d1082082518 Mon Sep 17 00:00:00 2001 From: Philip Hood Date: Sun, 18 Oct 2020 01:24:58 -0400 Subject: submission for solution #82, ch #1 - for ada (gnat -> gnatmake) --- challenge-082/pkmnx/gnat/ch_1.adb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 challenge-082/pkmnx/gnat/ch_1.adb 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; -- cgit