Hello, this is a function I dont understand.

This is what I am having trouble with.

suppose that a=4 and b=7

Once you plug in the initial a and b values, the correct answer is a=3 b=0. I dont get how it is achieved.Code:int f(int a, int b) { int c; c = 2*a%b; a = c + (2*b%a); b = c - (2*b%a); printf("a = %d, b = %d\n",a,b); return c; }

This is my logic and why I dont understand it:

c=2*a%b = 2*4%7 =1

a=c+(2*b%a) =1+(2*7%4) =3

b=c - (2*b%a)=1- (2*7%4)= -1

So I got a=3 and b=-1 which is wrong. Can someone please explain the logic behind the correct answer?