Sunteți pe pagina 1din 2

Algoritmul de calcul al celui mai mare divizor comun (cmmdc) cu

algoritmul lui Euclid prin împărţiri repetate. Conform acestui algoritm


cmmdc a două numere naturale nenule a şi b se calculează păstrând restul
împărţirii, şi reluând împărţirea cu vechiul împărţitor şi vechiul rest.
Algoritmul se va termina când restul împărţirii devine zero. Cel mai
mare divizor comun al celor două numere a şi b va fi ultimul împărţitor.
Pentru calculul celui mai mare divizor comun al perechii (16,22) se vor
efectua succesiv împărţirile:

Se observă că pentru determinarea cmmdc(16,22)=2 au fost necesari 5 paşi.

cin>>a>>b;
while(b!= 0)
{
rest=a%b;
a=b;
b=rest;
}
cout<<a;

Cerinţa
Să se scrie un program care să determine cel mai mare divizor comun a două
numere naturale citite de la tastatură.
Date de intrare
Programul citește de la tastatură două numere naturale a și b.
Date de ieşire
Programul afișează pe ecran numărul x, cel mai mare divizor comun al
numerelor a și b.
Restricţii şi precizări
 0 <= a, b < 1.000.000.000
 dacă ambele numere sunt egale cu 0 se va afișa valoarea -1
Exemplu
Intrare
24 36

Ieșire
12
01.#include <iostream>
02.using namespace std;
03.int main()
04.{
05.int a, b, rest;
06.cin>>a>>b;
07.if(a==0 && b==0) cout<<-1;
08.else
09.{while (b!=0)
10. {rest= a%b;
11. a= b;
12. b= rest;
13. }
14.cout<<a;}
15.return 0;
16.}

#59 CMMMC
Cerinţa
Să se scrie un program care să determine cel mai mic multiplu comun a două
numere naturale citite de la tastatură.
Date de intrare
Programul citește de la tastatură două numere naturale a și b.
Date de ieşire
Programul afișează pe ecran numărul x, cel mai mic multiplu comun al
numerelor a și b.
Restricţii şi precizări
 0 < a, b < 1.000.000.000
 pentru toate seturile de date de intrare, x<2.000.000.000
Exemplu
Intrare
24 36

Ieșire
72

01.#include <iostream>
02.using namespace std;
03.int main()
04.{
05.int a, b, rest,cop_a,cop_b;
06.cin>>a>>b;
07.cop_a=a;
08.cop_b=b;
09. while (b!=0)
10. {rest= a%b;
11. a= b;
12. b= rest;
13. }
14.cout<<(cop_a*cop_b)/a;
15.return 0;
16.}

S-ar putea să vă placă și