Prin acest algoritm, vom folosi o variabilă care va reprezenta restul primelor două numere. Primul număr îl va primi pe cel de-al doilea, cel de-al doilea va primi restul, iar restul se va calcula din nou. Acest lucru se continua până când restul este egal cu zero, iar valoarea finală a celui de-al doilea număr va fi cel mai mare divizor comun dintre cele două numere. Putem vedea ceea ce am explicat în exemplul următor, cu ajutorul unui tabel.
Calculaţi cel mai mare divizor comun dintre două numere naturale nenule.
x y r
30 45 30
45 30 15
30 15 0
15 (valoarea lui y) este cel mai mare divizor comun dintre x şi y.
C++
#include
using namespace std;
int main()
{
unsigned x,y,r;
cin>>x>>y;
r=x%y;
while(r!=0){
x=y;
y=r;
r=x%y;
}
cout<<y;
return 0;
}
!!! Dacă numerele pot fi nenule, atunci se va folosi structura alternativă astfel:
if(x*y==0)cout<<x+y;
else
Instrucţiuni 2 vor fi reprezentate de ceea ce am scris la algoritmul anterior.