<?php function powerdiv($x, $n) { if($x==1) { return 1; } elseif ($x==0) { return 0; } if ($n==0) { return 1; } elseif ($n==1) { return $x; } elseif ($n%2==0) { return powerdiv($x,$n>>1)*powerdiv($x,$n>>1); } else { return powerdiv($x,($n-1)>>1)*powerdiv($x,($n-1)>>1)*$x; } } function powercon($x,$n){ if ($n<0) { return 1/powerdiv($x,-$n); }else{ return powerdiv($x,$n); } } echo powercon(2,2);