public function root($num)
    {
        self::mustBeNumeric($num, 'Root');
        
        $n = is_object($num) ? $num->value : $num;

        if ($n == 0) {
            throw new \InvalidArgumentException('Root must be not nul');
        }

        return new N(pow($this->value, 1 / $n));
    }