The most efficient way to implement an integer based power function pow(int, int)

Exponentiation by squaring.

int ipow(int base, int exp)
    int result = 1;
    for (;;)
        if (exp & 1)
            result *= base;
        exp >>= 1;
        if (!exp)
        base *= base;

    return result;

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

Leave a Comment