Maximo comun divisor con argumentos en C

#include <stdio.h>

int mcd(int num1, int num2);

int main(int argc, char *argv[])
{
 int n1, n2;
 
 if (argc!=3){
  printf("Error! El número de argumentos no es correcto. Para ejecutar $./programa número número\n");
 }else{
  n1 = atoi(argv[1]);
  n2 = atoi(argv[2]);
  printf("El m.c.d. de %d y %d es %d\n", n1, n2, mcd(n1,n2));
 }
 return 0;
 
}

int mcd(int num1, int num2)
{
 int aux;
 
 if (num1>num2)
 {
  aux=num1; 
  num1=num2;
  num2=aux;
 }
 
 while (num2!=0)
 {
  aux=num1%num2;
  num1=num2;
  num2=aux;
 } 
 
 return num1;
 

}