How to calculate power for large numbers in PHP

1 Answer

0 votes
function CalculateLargeNumbersPower($base, $exponent) {
    $digits = [1]; // Least significant digit first

    for ($i = 0; $i < $exponent; $i++) {
        $carry = 0;
        for ($j = 0; $j < count($digits); $j++) {
            $num = $digits[$j] * $base + $carry;
            $digits[$j] = $num % 10;
            $carry = intdiv($num, 10);
        }

        while ($carry > 0) {
            $digits[] = $carry % 10;
            $carry = intdiv($carry, 10);
        }
    }

    $result = "";
    foreach ($digits as $d) {
        $result .= $d;
    }
    
    return strrev($result);
}

$base = 2; $exponent = 15;
echo "2^$exponent = " . CalculateLargeNumbersPower($base, $exponent) . PHP_EOL;

$base = 2; $exponent = 100;
echo "2^$exponent = " . CalculateLargeNumbersPower($base, $exponent) . PHP_EOL;



/*
run:

2^15 = 32768
2^100 = 1267650600228229401496703205376

*/

 



answered Aug 2, 2025 by avibootz

Related questions

1 answer 117 views
1 answer 88 views
1 answer 92 views
1 answer 111 views
1 answer 100 views
...