Informatică, întrebare adresată de raulsazor13, 9 ani în urmă

Care este algoritmul de calcul pentru cmmmc?
Pentru clasa a 9-a
REPEDE VA ROG

Răspunsuri la întrebare

Răspuns de Vicol79
3
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.

raulsazor13: e ok
raulsazor13: il stii?
Vicol79: nustiu
Vicol79: cauta pe net
Vicol79: sigur osal gasesti
raulsazor13: numa
raulsazor13: asta pe caare l-ai scris tu in pseudocod
raulsazor13: e pentru cmmmc
raulsazor13: sau cmmdc?
Vicol79: asta e pentru cmmdc
Răspuns de express
3
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;
}

Alte întrebări interesante