diff options
| author | Kang-min Liu <gugod@gugod.org> | 2020-10-07 00:05:30 +0900 |
|---|---|---|
| committer | Kang-min Liu <gugod@gugod.org> | 2020-10-07 00:05:30 +0900 |
| commit | 2bd5f0594278a6086492879b9ff1582e677ca817 (patch) | |
| tree | 350f71e24b1dac2f9fdbbfe2a4be85c37fada2a9 | |
| parent | 89a288199348fb289086328e6b49d2151216cc6a (diff) | |
| download | perlweeklychallenge-club-2bd5f0594278a6086492879b9ff1582e677ca817.tar.gz perlweeklychallenge-club-2bd5f0594278a6086492879b9ff1582e677ca817.tar.bz2 perlweeklychallenge-club-2bd5f0594278a6086492879b9ff1582e677ca817.zip | |
a naive solution of task 080.1
| -rw-r--r-- | challenge-081/gugod/raku/ch-1.raku | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-081/gugod/raku/ch-1.raku b/challenge-081/gugod/raku/ch-1.raku new file mode 100644 index 0000000000..b84d053ef5 --- /dev/null +++ b/challenge-081/gugod/raku/ch-1.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +# raku challenge-081/gugod/raku/ch-1.raku abcdabcd abcdabcdabcdabcd +# (abcd abcdabcd) + +sub MAIN (Str $A, Str $B) { + say common-base-string($A, $B); +} + +sub common-base-string (Str $A, Str $B) { + return ( base-string($A) ∩ base-string($B) ).keys; +} + +sub base-string (Str $s) { + return (1..$s.chars).grep( + -> $n { + ($s.chars mod $n == 0) + && ($s.substr(0,$n) x ($s.chars div $n)) eq $s + }).map(-> $n { $s.substr(0,$n) }); +} |
