2017 – 3

Si consideri la seguente funzione:

int myster(int c, int d) 
{
   if(c == d) 
      return c;
   if(c > d) 
      return myster(c-d, d);
   return myster(c, d-c);
}
int mcm(int a, int b) 
{
   return myster(b,a);
}

Quale delle seguenti modifiche fa sì che la funzione mcm ritorni il minimo comune multiplo tra a e b?

  1. sostituire myster(b,a); con myster(a,b);
  2. sostituire myster(b,a); con (a*b)/myster(b,a);
  3. sostituire myster(b,a); con myster(a-b,b);
  4. sostituire myster(b,a); con myster(a,b-a);