<?php
/**
* This functions computes an exponent by doing repeated squares
*
* @param Integer $base the base
* @param Integer $exponent the exponent (ie the number of times that the base is multiplied by itself)
* @return Integer
*/
function fastExponentiation(int $base, int $exponent)
{
if ($exponent == 0) {
return 1;
}
if ($exponent == 1) {
return $base;
}
if ($exponent % 2 == 0) {
return fastExponentiation($base*$base, $exponent/2);
} else {
return $base * fastExponentiation($base*$base, ($exponent-1)/2);
}
}