#include <stdio.h>
#include <assert.h>

int main (int argc, char ** argv) {
  int a,b,c,d,e,f,g,x,y;

  sscanf (argv[1], "%d", &a);
  sscanf (argv[2], "%d", &b);

  printf ("größter gemeinsamer teiler von %d und %d ...", a, b);
  fflush (stdout);

  x = a; y = b;  c = 1; d = 0; e = 0; f = 1;

  while ((x > 0) && (y > 0)) {

    assert (a == c*x + d*y);
    assert (b == e*x + f*y);

    if (x >= y) {
      x = x - y;  d = d + c; f = f + e;
    } else {
      y = y - x;  c = c + d; e = e + f;
    }
  }
  g = x + y;

  printf (" ist %d\n", g);
}
