use strict; my $N = 50; my $count = 0; my %ext; for (my $x1 = 0; $x1 <= $N; ++$x1) { for (my $y1 = 0; $y1 <= $N; ++$y1) { for (my $x2 = 0; $x2 <= $N; ++$x2) { for (my $y2 = 0; $y2 <= $N; ++$y2) { if (($x1 == 0 && $y1 == 0) || ($x2 == 0 && $y2 == 0) || ($x1 == $x2 && $y1 == $y2)) { next; } my ($a, $b, $c, $k1, $k2); $a = (0 - $x1) ** 2 + (0 - $y1) ** 2; $b = (0 - $x2) ** 2 + (0 - $y2) ** 2; $c = ($x1 - $x2) ** 2 + ($y1 - $y2) ** 2; $k1 = "($x1, $y1),($x2, $y2)"; # hahaha $k2 = "($x2, $y2),($x1, $y1)"; if (!exists($ext{$k1}) && !exists($ext{$k2}) && ($a + $b - $c == 0 || $a + $c - $b == 0)) { ++$ext{$k1}; ++$ext{$k2}; ++$count; } } } } } print "CNT=$count\n";