Проверьте, являются ли два числа степенями одного числа в php - PullRequest
0 голосов
/ 20 октября 2019

Например, поскольку 25 и 2.2360679775 (или 5 ^ 0.5) являются степенями 5, я хочу, чтобы функция возвращала 5. Единственный способ, который я нашел, - это просто перебрать его и попробовать каждое число.

$one=25;
$two=125;

for($b=2;$b<=10;$b++)
{
    $x=pow($one,1/$b);

    for($c=2;$c<=10;$c++)
    {
        $y=pow($two,1/$c);

        if($y == $x)
        {       
            return $x;
        }
    }

}

1 Ответ

0 голосов
/ 20 октября 2019

Как указывает Mbo в комментариях, каждое число (z) представляет собой степень некоторого числа (x) для некоторого другого числа (y). Итак, не совсем понятно, что вы имеете в виду, когда говорите: «Если два числа - это числа одинаковой степени». Несмотря на это, вы можете легко (без использования грубой силы) найти y по x и z, используя функцию log() в php, например, так:

 $z=125;
 $x=5;
 $y=log($z, $x);
 print $z . ' is ' . $x . ' to the power of ' . $y . '.';

Это должно привести к:

 125 is 5 to the power of 3.
...