aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKang-min Liu <gugod@gugod.org>2020-10-07 00:05:30 +0900
committerKang-min Liu <gugod@gugod.org>2020-10-07 00:05:30 +0900
commit2bd5f0594278a6086492879b9ff1582e677ca817 (patch)
tree350f71e24b1dac2f9fdbbfe2a4be85c37fada2a9
parent89a288199348fb289086328e6b49d2151216cc6a (diff)
downloadperlweeklychallenge-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.raku20
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) });
+}