aboutsummaryrefslogtreecommitdiff
path: root/challenge-125
diff options
context:
space:
mode:
authorScimon <simon.proctor@gmail.com>2021-08-10 15:57:31 +0100
committerScimon <simon.proctor@gmail.com>2021-08-10 15:57:31 +0100
commite0e7bd9c6f99fa775f8d41e44379e11ac2080b67 (patch)
tree1154344c6426ea1f3cfedbf3ba35b26344708075 /challenge-125
parentef6b617f44a1d0998e767bdea638c671b4180e01 (diff)
downloadperlweeklychallenge-club-e0e7bd9c6f99fa775f8d41e44379e11ac2080b67.tar.gz
perlweeklychallenge-club-e0e7bd9c6f99fa775f8d41e44379e11ac2080b67.tar.bz2
perlweeklychallenge-club-e0e7bd9c6f99fa775f8d41e44379e11ac2080b67.zip
Simplify
Diffstat (limited to 'challenge-125')
-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 } );
}