整数边直角三角形

作者:Quinn Perfetto

https://projecteuler.net/problem=39

如果 p 是一个边长为整数 {a,b,c} 的直角三角形的周长,则当 p = 120 时,恰好有三个解。

{20,48,52}, {24,45,51}, {30,40,50}

对于 p ≤ 1000,哪个 p 值的解的数量最多?

源代码:prob039-quinny.pl

use v6;

sub isTriple($a, $b, $c) {
    ($a * $a) + ($b * $b) == ($c * $c);
}

sub solutionsFor($p) {
    [+] gather for 1 .. $p -> $i {
        for ($i + 1) .. ($p - $i) -> $j {
            my $k = $p - $i - $j;
            take isTriple($i, $j, $k)
        }
    }
}

my $max = 0;
my $perim = 0;
for 3 .. 1000 {
    my $check = solutionsFor $_;
    if $check > $max {
        $max = $check;
        $perim = $_;
    }
}

say $perim;