diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-10-19 00:09:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-19 00:09:05 +0100 |
| commit | 61189267f56ff23c3610e7ef538168b41a7b31e1 (patch) | |
| tree | 394bda68c64eb95ee8a2f03a62136dcd0065e2ce /challenge-082 | |
| parent | a37b88ea9189720b8614259b52a1c2742631dd26 (diff) | |
| parent | 47554b5efbfc0a2798f1f7391c253d1082082518 (diff) | |
| download | perlweeklychallenge-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/README | 1 | ||||
| -rw-r--r-- | challenge-082/pkmnx/gnat/ch_1.adb | 28 | ||||
| -rwxr-xr-x | challenge-082/pkmnx/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-082/pkmnx/raku/ch-2.raku | 30 |
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; + +} |
