diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-06-06 10:15:06 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-06-06 10:15:06 +0200 |
| commit | 419a75e0d3adf1af222938e20750cb6e60b36639 (patch) | |
| tree | 572adba00aba259e062d412a18afef7dfc18215c | |
| parent | 34bcab0c854011b9443394ce8b421c7f7f75b161 (diff) | |
| download | perlweeklychallenge-club-419a75e0d3adf1af222938e20750cb6e60b36639.tar.gz perlweeklychallenge-club-419a75e0d3adf1af222938e20750cb6e60b36639.tar.bz2 perlweeklychallenge-club-419a75e0d3adf1af222938e20750cb6e60b36639.zip | |
Task 1 done
| -rwxr-xr-x | challenge-168/luca-ferrari/raku/ch-1.p6 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/challenge-168/luca-ferrari/raku/ch-1.p6 b/challenge-168/luca-ferrari/raku/ch-1.p6 new file mode 100755 index 0000000000..7059667b9b --- /dev/null +++ b/challenge-168/luca-ferrari/raku/ch-1.p6 @@ -0,0 +1,21 @@ +#!raku + +# Perl Weekly Challenge 168 + +sub MAIN( Int $limit where { $limit > 1 } = 13 ) { + + # this requires too much time! + # my @perrin = 3, 0, 2, -> $left, $right { $left + $right } ... *; + # my @perrin-primes = @perrin.grep( *.is-prime ); + # @perrin-primes.unique.head( 3 ).join( "\n" ).say; + + my @perrin = 3, 0, 2; + my @perrin-primes; + + while ( @perrin-primes.elems < $limit ) { + @perrin.push: @perrin[ * - 2 ] + @perrin[ * - 3 ]; + @perrin-primes.push: @perrin[ * - 1 ] if @perrin[ * - 1 ].is-prime && ! @perrin-primes.grep( @perrin[ * - 1 ] ); + } + + @perrin-primes.sort.join( "\n" ).say; +} |
