Doug T. - 8 months ago 53

C Question

What is the most efficient way given to raise an integer to the power of another integer in C?

`// 2^3`

pow(2,3) == 8

// 5^5

pow(5,5) == 3125

Answer

Exponentiation by squaring.

```
int ipow(int base, int exp)
{
int result = 1;
while (exp)
{
if (exp & 1)
result *= base;
exp >>= 1;
base *= base;
}
return result;
}
```

This is the standard method for doing modular exponentiation for huge numbers in asymmetric cryptography.