/* Euklidov algoritam za odredjivanje NZD - preko oduzimanja -
   rekurzivna definicija */
#include <stdio.h>

/* O rekurziji vise u kursu P2 - predstavlja prirodan nacin za
   formulaciju nekih algoritama. */
unsigned nzd(unsigned a, unsigned b) {
  /* printf("%u, %u\n", a, b); */
  if (a == 0)
    return b;
  if (b == 0)
    return a;
  if (a > b)
    return nzd(a - b, b);
  else
    return nzd(a, b - a);
}


int main() {
  unsigned a = 105, b = 252;
  printf("NZD(%u, %u) = %u\n", a, b, nzd(a, b));
  return 0;
}