diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-03-29 16:02:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-29 16:02:46 +0100 |
| commit | d57593c97d9d1e7db052047791910332d9dc9dab (patch) | |
| tree | 1b8b6a24a21c1fb364f54c02c41fa6a51a9f75d3 | |
| parent | f824298c9f54f595d0c3a74dfc61b68bae56131f (diff) | |
| parent | f442fd740022d94ab2f42b7405cbd2fb061d3cab (diff) | |
| download | perlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.tar.gz perlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.tar.bz2 perlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.zip | |
Merge pull request #5858 from 0rir/158
158
| -rw-r--r-- | challenge-158/0rir/raku/ch-1.raku | 28 | ||||
| -rw-r--r-- | challenge-158/0rir/raku/ch-2.raku | 27 |
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-158/0rir/raku/ch-1.raku b/challenge-158/0rir/raku/ch-1.raku new file mode 100644 index 0000000000..523335f473 --- /dev/null +++ b/challenge-158/0rir/raku/ch-1.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku +# :vim ft=raku sw=4 expandtabs +use v6.d; + +# TASK #1 › Additive Primes to 100 +# An additive prime is a prime number whose decimal digits +# sum to a prime. + +my $expected = "2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89"; + +my @prime = 2, 3, { first * %% none(@_), (@_[*-1], *+2 … ∞) } … ∞; + +sub _is-additive( Any $n --> Bool ) { + return True if ( [+] $n.Str.split( '' ) ).is-prime; + False; +} + +my @result; + +for @prime -> $ap { + last if $ap > 100; + @result.push( $ap) if $ap.&_is-additive; +} +my $out = @result.join( ', '); + +die 'Logic error.' if $out ne $expected; + +say $out; diff --git a/challenge-158/0rir/raku/ch-2.raku b/challenge-158/0rir/raku/ch-2.raku new file mode 100644 index 0000000000..b39e69391f --- /dev/null +++ b/challenge-158/0rir/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku +# :vim ft=raku sw=4 expandtabs +use v6.d; + +# TASK #2 › First Series Cuban Primes + +my $want = 1000; + +my @expect; +my @correct = 7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919, + 1657, 1801, 1951, 2269, 2437, 2791, 3169, 3571, 4219, 4447, + 5167, 5419, 6211, 7057, 7351, 8269, 9241, + 10267, 11719, 12097, 13267, 13669, + 16651, 19441, 19927, 22447, 23497, 24571, 25117, 26227; + +my @cuban-prime; + for 1 .. ∞ { + my $cp = ($_+1)³ - $_³; + last if $cp > $want; + if $cp.is-prime { + @cuban-prime.push: $cp; + @expect.push: @correct.shift; + } +}; + +die 'Logic error.' unless @cuban-prime eqv @expect; +say @cuban-prime.join( ', '), '.'; |
