diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-06-13 10:33:58 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-06-13 10:33:58 +0200 |
| commit | 5ea70868d519d3d3426cdbd7b510fda19372136c (patch) | |
| tree | a56e00cb1aa94c6daf1b30894c0ffdf929b0eb2f | |
| parent | 8810e3636cb9c2a1b553481bf3b4ae1fc3841784 (diff) | |
| download | perlweeklychallenge-club-5ea70868d519d3d3426cdbd7b510fda19372136c.tar.gz perlweeklychallenge-club-5ea70868d519d3d3426cdbd7b510fda19372136c.tar.bz2 perlweeklychallenge-club-5ea70868d519d3d3426cdbd7b510fda19372136c.zip | |
Task 1 done
| -rwxr-xr-x | challenge-169/luca-ferrari/raku/ch-1.p6 | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-169/luca-ferrari/raku/ch-1.p6 b/challenge-169/luca-ferrari/raku/ch-1.p6 new file mode 100755 index 0000000000..5ce81cc39b --- /dev/null +++ b/challenge-169/luca-ferrari/raku/ch-1.p6 @@ -0,0 +1,34 @@ +#!raku + +# Perl Weekly Challenge 169 + +sub is-brilliant( $num ) { + my $number = $num; + + # get all the factors + my @factors; + + for 2 ..^ $number { + next if ! $_.is-prime; + + while ( $number %% $_ ) { + @factors.push: $_; + $number /= $_; + } + } + + return False if @factors.elems != 2; + return False if @factors[0] == @factors[1]; + return True if @factors[0].Str.chars == @factors[1].Str.chars; +} + + +sub MAIN( Int $limit where { $limit > 0 } = 20 ) { + + my @brilliant = lazy gather { + take $_ if is-brilliant( $_ ) for 1 .. Inf; + }; + + @brilliant[ 0 .. $limit ].join( "\n" ).say; + +} |
