$i = 0; %T = (); %P = (); %H = (); for ($i = 0; $i < 1000000; $i++) { $T{($i * ($i + 1) / 2)} = 1; $P{($i * (3 * $i - 1) / 2)} = 1; $H{($i * (2 * $i - 1))} = 1; } foreach $k (sort keys %T) { if ($T{$k} && $P{$k} && $H{$k}) { print "$k\n"; } } exit;