use strict; my $mc = 0; my $mp = 0; my $count; for (my $p = 1; $p < 1000; ++$p) { $count = 0; for (my $a = 1; $a < 1000; ++$a) { for (my $b = $a + 1; $a + $b < $p; ++$b) { # a^2 + b^2 = c^2 # p = a + b + c # c = p - a - b # a^2 + b^2 = (p - a - b)^2 # p^2 - (2ap + 2bp - 2ab) = 0 if ($p ** 2 - (2 * $p * $a + 2 * $p * $b - 2 * $a * $b) == 0) { my $c = $p - $a - $b; print "{$a,$b,$c}"; ++$count; } } } if ($mc < $count) { $mc = $count; $mp = $p; } if ($count != 0) { print "(p=$p)\n"; } } print "A=$mp ($mc)\n";