Algorithms | Divide and Conquer | Question 2

Consider the following C program

filter_none

edit
close

play_arrow

link
brightness_4
code

int main() 
   int x, y, m, n; 
   scanf ("%d %d", &x, &y); 
   /* x > 0 and y > 0 */
   m = x; n = y; 
   while (m != n) 
   
      if(m>n) 
         m = m - n; 
      else
         n = n - m; 
   
   printf("%d", n); 
}

chevron_right


What does the program compute? (GATE CS 2004)
(A) x + y using repeated subtraction
(B) x mod y using repeated subtraction
(C) the greatest common divisor of x and y
(D) the least common multiple of x and y


Answer: (C)

Explanation: This is an implementation of Euclid’s algorithm to find GCD

My Personal Notes arrow_drop_up