english

learn php

learn css

learn html

learn javascript

learn php

7. functions

solution 7.6
1 minute / 171 words

seven / solution 7.6

<?php

simplify(5, -250000);
simplify(5, -250001);
simplify(6, -250001);
simplify(5, 250001);
simplify(10, 1);
simplify(10, 2048);
simplify(10, 0);
simplify(0, 100);
simplify(-2, 5000);

// takes $n for nth root and $i for integer
// $max = maximum multiplier for $n
// $v = test value for multiplier
// $s = simplified $i
// outputs in format of a b√c where b is nth root because of text limitations, omitting what's not relevant

function simplify(int $n, int $i)
{
    print_r("simplifying " . $n . "√" . $i . ".\n");

    if ($n < 2) {
        print_r("sorry, can't simplify that.\n\n");
        return;
    }
    if ($i === 0) {
        print_r("0\n\n");
        return;
    }
    if ($i === 1) {
        print_r("1\n\n");
        return;
    }

    $i < 0 ? ($imaginary = true && ($i *= -1)) : ($imaginary = false);

    $max = ceil($i ** (1 / $n));

    for ($v = $max; $v >= 1; $v--) {
        if ($i % $v ** $n === 0) {
            $s = $i / $v ** $n;
            $imaginary && $n % 2 > 0 && print_r("-");
            $v > 1 && print_r($v);
            $imaginary && $n % 2 == 0 && print_r("i");
            ($v > 1 || $imaginary) && print_r(" ");
            $s > 1 && print_r($n . "√" . $s);
            print_r("\n\n");
            return;
        }
    }
}

learn php

learn css

learn html

learn javascript

powered by akelei. an avi sato project.