Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int gcdExtended(int a, int b, int* x, int* y)
- {
- if (a == 0) {
- *x = 0;
- *y = 1;
- return b;
- }
- int x1, y1; // To store results of recursive call
- int gcd = gcdExtended(b % a, a, &x1, &y1);
- // Update x and y using results of recursive
- // call
- *x = y1 - (b / a) * x1;
- *y = x1;
- return gcd;
- }
- int main()
- {
- int x, y;
- int a = 10, b = 15;
- int g = gcdExtended(a, b, &x, &y);
- printf("gcd(%d, %d) = %d", a, b, g);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement