Question #181285

Write a function named "g_c_d" that takes two positive integer arguments and returns as its value the greatest common divisor of those two integers. If the function passed an argument that is not positive (i.e., less than zero), then the function should return the value 0 as a sentinel value to indicate that an error occurred. Thus, for example:

cout << g_c_d(40,50) << endl;     // will print 10

cout << g_c_d(256,625) << endl; // will print 1

cout << g_c_d(42,6) << endl;      // will print 6

cout << g_c_d(0,32) << endl;     // will print 0

cout << g_c_d(10,-6) << endl;   // will print 0

Expert's answer

int g_c_d(int a, int b)
{
  int i;
  for (i = a; i > 0; i--)
    {
    if (a % i == 0 && b % i == 0) {
      return i;
    }
  }
}
LATEST TUTORIALS
APPROVED BY CLIENTS