例如,由于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;
}
}
}
正如Mbo在评论中指出的那样,每个数字(z)都是某个数字(x)到某个其他数字(y)的幂。因此,当您说“如果两个数字是相同幂的数字”时,您的意思还不是很清楚。尽管如此,您可以轻松地(无需使用蛮力)使用php中的log()
函数找到给定x和z的y,如下所示:
$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.