Algoritmo MDC (máximo divisor comum) em C

Seguindo os algoritmos, vou postar agora o algoritmo de MDC (Máximo Divisor Comum) utilizando função recursiva, um método rápido e fácil para encontrar o

MDC

.
O mesmo é encontrado em vários lugares e existem vários modos de serem feitos, porém o método que eu escolhi para calcular foi com função recursiva.
Uma breve explicação da função é que, o retorno dela, é ela mesma utilizando os parâmetros atualizados, sendo assim, enquanto calcula, vai retornando os novos valores para a função até achar o valor calculado.
Como eu disse, existem vários métodos a serem feitos, caso alguém queira dar alguma dica só comentar. :D

//
//  MDC.c
//  Máximo Divisor Comum
//
//  Created by Ayrton Jose Lopes on 03/06/13.
//  Copyright (c) 2013 Ayrton Jose Lopes. All rights reserved.
//

#include <stdio.h>

int tor= 0, i= 0;

/* Função recursiva que retorna o valor do MDC */
int mdc(int n, int d){
    if (d== 0) {
        return n;
    }
    else {
        return mdc(d, n%d);
    }
}

int main(){
    int n= 0, d= 0;
    scanf("%d", &tor);
    for (i= 0; i< tor; i++) {
        scanf("%d %d", &n, &d);
        printf("%d\n", mdc(n, d));
    }
    return 0;
}

O algoritmo imprime somente o valor calculado.

OBS:

Os algoritmos são testados no linux e todos estão funcionando.