Пример #1
0
function q4()
{
    $highestPalindrome = null;
    for ($i = 999; $i > 99; --$i) {
        for ($j = 999; $j > 99; --$j) {
            $value = $i * $j;
            if ($value < $highestPalindrome) {
                break;
            }
            if (Str::isPalindrome($value)) {
                $highestPalindrome = $value;
            }
        }
    }
    return $highestPalindrome;
}
Пример #2
0
function q35($max)
{
    $primes = Prime::upTo($max);
    $primes = array_flip($primes);
    $circularPrimesCount = 0;
    foreach ($primes as $prime => $dontCare) {
        $length = strlen($prime);
        $isCircular = true;
        for ($i = 0; $i < $length; ++$i) {
            $rotatedPrime = Str::rotate($prime, $i);
            if (!isset($primes[$rotatedPrime])) {
                $isCircular = false;
                break;
            }
        }
        if ($isCircular) {
            ++$circularPrimesCount;
        }
    }
    return $circularPrimesCount;
}