Răspuns :
Algoritmul prin scaderi reperate:
Citeste a,b
Cat timp a!=b executa
Daca a>b atunci
a=a-b
Altfel b=b-a
Scrie a
Algoritmul este:
– citim a,b;
– cat timp numerele a si b sunt diferite scadem din numarul mai mare numarul mai mic;
– afisam unul din numere;
Obs.: Aceasta metoda este lenta din punct de vedere al timpului.
In urma calcularii cmmdc numerele se modifica. Daca dorim sa folosim numerele trebuie sa realzam o copie a lor inainte de calculul cmmdc.
Algoritmul lui Euclid:
Citeste a,b
r=a%b
Cat timp r!=0 executa
a=b
b=r
r=a%b
Scrie b
Algoritmul este:
-citim a,b
calculam r=a%b
-cat timp r!=0 executa
– a=b
– b=r
– r=a%b
– scrie b
Obs.: Algoritmul lui Euclid este mai rapid decat algoritmul prin scaderi repetate.
Numerele se modifica, prin urmare, daca trebuie realizam o copie a lor inainte de calcului cmmdc.
Citeste a,b
Cat timp a!=b executa
Daca a>b atunci
a=a-b
Altfel b=b-a
Scrie a
Algoritmul este:
– citim a,b;
– cat timp numerele a si b sunt diferite scadem din numarul mai mare numarul mai mic;
– afisam unul din numere;
Obs.: Aceasta metoda este lenta din punct de vedere al timpului.
In urma calcularii cmmdc numerele se modifica. Daca dorim sa folosim numerele trebuie sa realzam o copie a lor inainte de calculul cmmdc.
Algoritmul lui Euclid:
Citeste a,b
r=a%b
Cat timp r!=0 executa
a=b
b=r
r=a%b
Scrie b
Algoritmul este:
-citim a,b
calculam r=a%b
-cat timp r!=0 executa
– a=b
– b=r
– r=a%b
– scrie b
Obs.: Algoritmul lui Euclid este mai rapid decat algoritmul prin scaderi repetate.
Numerele se modifica, prin urmare, daca trebuie realizam o copie a lor inainte de calcului cmmdc.
Ai si o sursa in C++ pentru cmmdc si cmmmc cu Alg lui Euclid. CMMMC = (a*b)/cmmdc(a,b). Succes!
#include <iostream>
using namespace std;
int d,i,r, a, b;
int main()
{
cout << "a="; cin >> a;
cout << "b="; cin >> b;
d = a;
i = b;
r=d%i;
while(r!=0)
{
d=i;
i=r;
r=d%i;
}
cout <<"c.m.m.d.c = " <<i << "\n";
cout <<"c.m.m.m.c =" << (a * b) / i;
return 0;
}
#include <iostream>
using namespace std;
int d,i,r, a, b;
int main()
{
cout << "a="; cin >> a;
cout << "b="; cin >> b;
d = a;
i = b;
r=d%i;
while(r!=0)
{
d=i;
i=r;
r=d%i;
}
cout <<"c.m.m.d.c = " <<i << "\n";
cout <<"c.m.m.m.c =" << (a * b) / i;
return 0;
}