<?php
/**
 * Triangle   Tn = n*(n+1)/2
 * Pentagonal Pn = n*(3n-1)/2
 * Hexagonal  Hn = n*(2n-1)
 * T(285) = P(165) = H(143) = 40755
 * Find next
 */

function Tn($n)
{
    return $n*($n+1)/2;
}

function Pn($n)
{
    return $n*(3*$n-1)/2;
}

function Hn($n)
{
    return $n*(2*$n-1);
}

echo "Tn(285)=".Tn(285).PHP_EOL;
echo "Pn(165)=".Pn(165).PHP_EOL;
echo "Hn(143)=".Hn(143).PHP_EOL;


for($t = 285; $t < 100000; $t++) 
{
    $triangle[$t] = Tn($t);
}

for($p = 165; $p < 100000; $p++) 
{
    $pentagonal[$p] = Pn($p);
}

for($h = 143; $h < 100000; $h++) 
{
    $hexagonal[$h] = Hn($h);
}

$result = array_intersect($triangle, $pentagonal, $hexagonal);

print_r($result);