aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-125/simon-proctor/raku/ch-1.raku25
1 files changed, 4 insertions, 21 deletions
diff --git a/challenge-125/simon-proctor/raku/ch-1.raku b/challenge-125/simon-proctor/raku/ch-1.raku
index 1d911c8085..0dde3bf6eb 100644
--- a/challenge-125/simon-proctor/raku/ch-1.raku
+++ b/challenge-125/simon-proctor/raku/ch-1.raku
@@ -22,26 +22,9 @@ multi sub MAIN(UInt $N where * > 0) {
}
sub py-triples(UInt $N) {
- my @out;
-
- #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 ((1..($N² div 2)) X, (1..($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 ((1..($N² div 2)) X, (1..($N² div 2)+1)).hyper
+ .grep( -> ($a,$b) { $b >= $a } )
+ .grep( -> ($a,$b) { $N² + $a² == $b² || $N² == $a² + $b² } )
+ .map( -> ($a,$b) { ( $a, $b, $N ).sort } );
}