Exemplo n.º 1
0
function q12($divisorCount)
{
    // We can safely assume that the triangle number which is the sum of $divisorCount numbers
    // does not have $divisorCount divisors yet.
    $number = $divisorCount;
    while (true) {
        ++$number;
        $triangleNumber = Number::triangle($number);
        // It should be more likely that an even number be the first number to have more divisors, so lets skip uneven
        // numbers
        if ($triangleNumber & 1 !== 0) {
            continue;
        }
        $numberOfDivisors = Number::getDivisorsCount($triangleNumber);
        if ($numberOfDivisors > $divisorCount) {
            return $triangleNumber;
        }
    }
}
Exemplo n.º 2
0
function q45($t, $p, $h)
{
    $px = Number::pentagonal($p);
    $tx = Number::triangle($t);
    while (true) {
        $hx = Number::hexagonal(++$h);
        $count = 1;
        while ($hx >= Number::pentagonal($p + 1)) {
            $px = Number::pentagonal(++$p);
        }
        if ($px === $hx) {
            ++$count;
        }
        while ($hx >= Number::triangle($t + 1)) {
            $tx = Number::triangle(++$t);
        }
        if ($tx === $hx) {
            ++$count;
        }
        if ($count === 3) {
            return $hx;
        }
    }
}