/*  GCD - using function 
 *  Author:  Yotam Medini  yotam.medini@gmail.com -- Created: 2007/May/02 
 */

#include <stdio.h>
#include <stdlib.h>


int gcd(int m, int n) 
{
    /* Euclid */
    while (n != 0) {
         int  residue = m % n;
         m = n;
         n = residue;
    }
    return m;
} /* gcd */


int main(int argc, char** argv)
{
    int  rc = 0;
    if (argc != 1+2) {
        fprintf(stderr, "Usage: %s <number> <number>\n", argv[0]);
        rc = 1;
    } else {
        int  m = atoi(argv[1]);
        int  n = atoi(argv[2]);
        int  result = gcd(m, n);
        printf("gcd(%d, %d) = ", m, n);
        if (result != 0) {
            printf("%d\n", result);
        } else {
            printf("infinity\n");
        }
    }
    return rc;
} /* main */

