#include <iostream> using namespace std; int main() { int a, b; cin>>a; //primul numar cin>>b; //al doilea numar while(a!=b) { if(a>b) a=a-b; else b=b-a; } //cel mai mare divizor va fi unul dintre cele doua numere intrucat la final acestea devin egale cout<<a; }
- citim cele 2 numere: a si b
- cat timp cele 2 numere nu sunt egale vom scadea din cel mai mare dintre ele pe cel mai mic
- la final cele doua numere vor deveni egale, iar acest numar reprezinta cmmdc-ul
#include <iostream> using namespace std; int main() { int a, b; cin>>a; //primul numar cin>>b; //al doilea numar while(b!=0) { int r=a%b; a=b; b=r; } //cel mai mare divizor comun va fi memorat de variabila a cout<<a; }
- citim cele 2 numere: a si b
- aceasta metoda se bazeaza pe impartirea deimpartitului(a) la impartitor(b) si memorarea restului(r), pana cand acest rest devine 0
- impartitorul devine deimpartit, iar restul devine impartitor
- in momentul cand restul impartirii devine 0, cmmdc-ul va fi stocat in a