The following function computes XY for positive integers X and Y.
int exp(int X, int Y) {
int res = 1, a = X, b = Y;
while (b ! = 0){
if (b%2 == 0) { a = a*a; b = b/2; }
else { res = res*a; b = b-1; }
}
return res;
}
Which one of the following conditions is TRUE before every iteration of the loop?
(A) XY = ab
(B) (res ∗ a)Y = (res ∗ X)b
(C) XY = res ∗ ab
(D) XY = (res ∗ a)b