/* Finding GCD of two natural numbers */
#include <stdio.h>

int GCD(int,int);

void main(void)
{
 int X,Y,Z;

LP:
 puts("Input two integers or zeros to terminate (separated by a comma)");
 scanf("%d,%d",&X,&Y); getchar();
 if ((X) || (Y))
  {                                 
   Z=GCD(X,Y);
   printf("GCD(%d,%d) = %d",X,Y,Z);
   if (Z==1) printf("     (relatively prime)");
   puts("\n");
   goto LP;
  }
}

/*************************************************/

int GCD(int X,int Y)
/* input two integers X,Y; return their greatest common divisor */
{
 int R;

 if (X<0) X=-X; if (Y<0) Y=-Y;
 if (X>Y) {R=X; X=Y; Y=R;}
 R=-1;
 while (R)
  {
   R=Y%X; /* Q=Y/X; printf("X=%d  Y=%d  Q=%d  R=%d\n",X,Y,Q,R); getchar(); */
   Y=X; X=R;
  }
 return Y;
}
