CMMDC
Metoda 1. Algoritmul lui Euclid cu scăderi
Algoritmul lui Euclid cu scăderi este o metodă mai puțin eficientă, însă mai ușor de înțeles. Acest algoritm se bazează pe principiul următor: dacă d | a și d | b, atunci d | a - b (unde a ≥ b) — dacă d divide ambele numere, atunci divide și diferența lor.
Iată algoritmul propriu zis:
- cât timp numerele sunt diferite, se scade numărul mai mic din cel mai mare;
- când numerele devin egale, atunci CMMDC-ul lor este chiar numărul lor.
while(a != b)
{
if(a > b)
a = a - b;
else b = b - a;
}
CMMMC
Metoda 2. Algoritmul lui Euclid clasic (cu împărțiri)
Algoritmul lui Euclid cu împărțiri este mai dificil de înțeles, însă este mai eficient (acesta este algoritmul recomandat pentru rezolvarea problemelor).
Pe scurt, observăm că în codul anterior facem scăderi repetate. Aceste scăderi se pot înlocui cu împărțiri, astfel că algoritmul este următorul:
- cât timp b este diferit de 0, a primește b, iar b primește restul împărțirii lui a la b;
- răspunsul în final se află în a.
while(b != 0)
{
r = a % b; //Restul împărțirii lui a la b
a = b;
b = r;
}