Napisz program obliczający największy wspólny dzielnik (NWD).

Za obliczenie nwd powinna odpowiadać funkcja "nwd" do której zmienne wyślesz używając wskaźników. Program ma obliczać nwd iteracyjnie. Napisałem, bez iteratora- czy nógłby ktoś poprawić do zadanie?
#include <iostream>

using namespace std;

int main()
{
int a, b ,nwd;
cout << "Podaj pierwsza liczbe: ";
cin >> a;
cout << "Podaj druga liczbe: ";
cin >> b;
if (a!=b)
{
do
{
if(a > b)
{
nwd = a - b;
}
else
{
nwd = b - a;
}

}

while(a != b);

}
else
{
nwd=a;
}
cout << "Najwiekszy wspolny dzielnik: " << nwd << endl;

return 0;

}