diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-19 21:03:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-19 21:03:21 +0100 |
| commit | df881a9ff65c5bf4e53e3ca76b5535c619acb716 (patch) | |
| tree | 4665e0623fc34d6a955b8cabb8c81e661cc8b407 | |
| parent | 084b0d96dd50d6d265792d9e200d9f2d6e8fa899 (diff) | |
| parent | f7a60044c57e0eb8ad1ce764c3ddc9e7e6576bd7 (diff) | |
| download | perlweeklychallenge-club-df881a9ff65c5bf4e53e3ca76b5535c619acb716.tar.gz perlweeklychallenge-club-df881a9ff65c5bf4e53e3ca76b5535c619acb716.tar.bz2 perlweeklychallenge-club-df881a9ff65c5bf4e53e3ca76b5535c619acb716.zip | |
Merge pull request #6290 from 2colours/branch-for-challenge-169
Weekly solutions by 2colours
| -rwxr-xr-x | challenge-169/2colours/raku/ch-1.raku | 19 | ||||
| -rwxr-xr-x | challenge-169/2colours/raku/ch-2.raku | 20 |
2 files changed, 39 insertions, 0 deletions
diff --git a/challenge-169/2colours/raku/ch-1.raku b/challenge-169/2colours/raku/ch-1.raku new file mode 100755 index 0000000000..a17ab34df7 --- /dev/null +++ b/challenge-169/2colours/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + + +my @primes = grep &is-prime, ^Inf; +my @primes-digited = @primes.map( -> $current { + state @buffer; + when @buffer[0] andthen .chars == $current.chars { + @buffer.append: $current; + Empty + } + my @res = @buffer; + @buffer = [$current]; + @res +}); +@primes-digited .= skip; +@primes-digited.map({ ([\,] @$_) >>*>> @$_ andthen .flat.sort.Slip }) + andthen .head: 20 + andthen .join: ', ' + andthen .say; diff --git a/challenge-169/2colours/raku/ch-2.raku b/challenge-169/2colours/raku/ch-2.raku new file mode 100755 index 0000000000..1fa0bc027d --- /dev/null +++ b/challenge-169/2colours/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub is-achilles($num) { + (powerful-exponent($num) // 0) == 1 +} + +multi powerful-exponent(1 --> 0) {} +multi powerful-exponent($ where *.is-prime --> Nil) {} +multi powerful-exponent($num) { + my $first-divisor = (2 .. *).first: $num %% *; + my $first-exponent = (1 .. *).toggle($num %% $first-divisor ** *).tail; + return Nil if $first-exponent == 1; + return $first-exponent gcd $_ with powerful-exponent($num div $first-divisor ** $first-exponent); + Nil +} + +(1 .. *).grep: &is-achilles + andthen .head: 20 + andthen .join: ', ' + andthen .say;
\ No newline at end of file |
