diff options
| author | Scimon <simon.proctor@gmail.com> | 2021-08-10 15:39:23 +0100 |
|---|---|---|
| committer | Scimon <simon.proctor@gmail.com> | 2021-08-10 15:39:23 +0100 |
| commit | cb5a47e90829ac7089033d1c06d316b68ce7e986 (patch) | |
| tree | 85c925cd356ce2f825080c9cce512b02ac280f6c | |
| parent | df64daf6d419ae5be1a3f7f2c23ab4c3181d568e (diff) | |
| download | perlweeklychallenge-club-cb5a47e90829ac7089033d1c06d316b68ce7e986.tar.gz perlweeklychallenge-club-cb5a47e90829ac7089033d1c06d316b68ce7e986.tar.bz2 perlweeklychallenge-club-cb5a47e90829ac7089033d1c06d316b68ce7e986.zip | |
Update to challenge 1
| -rw-r--r-- | challenge-125/simon-proctor/raku/ch-1.raku | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/challenge-125/simon-proctor/raku/ch-1.raku b/challenge-125/simon-proctor/raku/ch-1.raku index 5caf5d2c2d..348b00d445 100644 --- a/challenge-125/simon-proctor/raku/ch-1.raku +++ b/challenge-125/simon-proctor/raku/ch-1.raku @@ -24,8 +24,24 @@ multi sub MAIN(UInt $N where * > 0) { sub py-triples(UInt $N) { my @out; - my @odds = (1,*+2...* >= $N).cache; + #my @odds = (1,*+2...* >= $N).cache; + + #return (@odds X, @odds).hyper.grep( -> ($m, $n) { $m > $n } ).map( -> ( $m, $n ) { note ($m,$n); ( ($m * $n), ( ($m²-$n²)/2), ( ($m² + $n²)/2 ) ) } ).grep( -> $pos { note $pos; $N ~~ $pos.any; } ); + + my $as = start ((1..^$N) X, (1..^$N²)).hyper + .grep( -> ($a,$b) { $b >= $a } ) + .grep( -> ($a,$b) { $N² == $a² + $b² } ) + .map( -> ($a, $b) { ( $a, $b, $N ).sort } ); + + my $cs = start (($N^..($N² div 2)) X, ($N^..($N² div 2)+1)).hyper + .grep( -> ($a,$c) { $c >= $a } ) + .grep( -> ($a,$c) { $N² + $a² == $c² } ) + .map( -> ($a, $c) { ( $a, $N, $c ).sort } ); + + await $as, $cs; + + return |$as.result , |$cs.result; - return (@odds X, @odds).hyper.grep( -> ($m, $n) { $m > $n } ).map( -> ( $m, $n ) { ( ($m * $n), ( ($m²-$n²)/2), ( ($m² + $n²)/2 ) ) } ).grep( -> $pos { $N ~~ $pos.any; } ); + } |
