Search This Blog

Wednesday, February 8, 2012

C++: Aflarea lui CMMDC si a lui CMMMC pentru nr. "a" si "b"

In acest post va voi prezenta algoritmul de C++ ce scoate CMMDC si CMMMC pentru 2 numere date, "a" si "b", utilizand doar biblioteca <iostream>. Algoritmul ruleaza bineinteles si in <fstream>, dar vi-l voi arata cum se face in cel mai simplu mod.

Pentru CMMDC:
int a,b,cmmdc,ca,cb;
cin>>a>>b;
ca=a; cb=b;
while(ca!=cb)
if(ca>cb) ca-=cb;
else cb-=ca;
cmmdc=ca;

Principiul acestui algoritm este cel mai simplu posibil pentru a afla CMMDC: scadem "a" din "b" sau invers (in functie de care este mai mare) pana ajungem ca acestea sa fie egale => atunci CMMDC egal cu "a" sau cu "b" (deoarece ele sunt egale), iar "ca" si "cb" reprezinta copiile variabilelor "a" si "b", pe care le utilizam cu scopul de a nu strica valorile variabilelor citie initial.

Pentru CMMC (notam cmmdc=cmmdc(a,b) ca fiind algoritmul pentru CMMDC prezentat mai sus):
cmmdc=cmmdc(a,b);
cmmmc=a*b/cmmdc; 

Sper sa reusiti sa invatati acesti 2 algoritmi destul de elementari si de simpli. Succes!