Напомним алгоритм Евклида: пока два натуральных числа не равны, в качестве большего числа бери разность большего и меньшего чисел. Когда числа станут равны в качестве наибольшего общего делителя можно взять любое из них.

   #include<iostream.h>
   main ()
   {
      int x,y;
      cout << "Задайте два натуральных числа: ";
      cin >> x >> y;
      while  (x!=y)
      {
         if  (x>y)
            x = x - y;
         else
            y = y - x;
      }
      cout << "НОД этих чисел равен " << x;
   }
Текст этой программы можно взять здесь.