aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScimon <simon.proctor@gmail.com>2021-08-10 15:39:23 +0100
committerScimon <simon.proctor@gmail.com>2021-08-10 15:39:23 +0100
commitcb5a47e90829ac7089033d1c06d316b68ce7e986 (patch)
tree85c925cd356ce2f825080c9cce512b02ac280f6c
parentdf64daf6d419ae5be1a3f7f2c23ab4c3181d568e (diff)
downloadperlweeklychallenge-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.raku20
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; } );
+
}