#include int odd(int val) { return 1 == (val % 2); } long myexpt(int base, int power) { // Rules: // base^0 = 1 // base^n = (base^n/2)^2, for even n // base^n = (base^2)^(n/2), for even n // base^n = base*base^(n-1) for odd n long result = 1; while (power > 0) { printf("Loop!"); if (odd(power)) { result = result * base; power = power - 1; } else { base = base * base; power = power / 2; } } return result; } /* int, int */ main() { int x, y; printf("Enter base: "); scanf("%d", &x); printf("Enter power: "); scanf("%d", &y); printf("%d^%d = %d\n", x, y, myexpt(x,y)); } /* */