Cmmdc interativ si recursiv.
In DevC++ nu are nicio eroare si merge perfect, compilatorul de pe site gaseste erori

Cod :
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
using namespace std;
//Varianta iterativa:
//Sa presupunem ca avem 2 Numere naturale a si b (nenule), si o variabila c (c natural). Iata pasii algoritmului:
//-Se imparte a la b, iar restul impartiri este retinut in c (c=a%b)
//-a ia valoarea lui b (a=b)
//-b ia valoarea restului impartirii (b=c)
//-daca b este diferit de 0 se revine la pasul 1, daca b este 0, cmmdc este a
int euclid(int a,int b)
{
int c;
while(b) // cat timp b diferit de 0
{
c=a%b; // c = valoarea impartiri lui a la b
a=b;
b=c; // b = restul impartiri lui a la b
} //end while
return a;
} // end euclid
//Varianta recursiva:
int euclidrec(int a,int b)
{
if (b==0)
b = a;
else
euclidrec(b,a%b);
} //end euclidrec
int main()
{
int a,b;
cout<<"Dati a si b:";
cin>>a>>b;
cout<<"Varianta iterativa!"<<endl;
cout<<"Cel mai mare divizor dintre "<<a<<" si "<<b<<" este : "<<euclid(a,b)<<endl;
cout<<endl;
cout<<"Varianta recursiva!"<<endl;
cout<<"Cel mai mare divizor dintre "<<a<<" si "<<b<<" este : "<<euclidrec(a,b)<<endl;
getch();
}