You are on page 1of 2

#include <iostream>

using namespace std;


/*Elaborati o functie pentru a calcula cmmdc a doua nr naturale >0 */

int cmmdc1(int a,int b)


{
int m;
if(a>b)m=b;
else m=a;
for(int d=m;d>=1;d--)
if(a%d==0&&b%d==0)return d;
}

int cmmdc2(int a,int b)


{
int m;
m=a>b?b:a;
for(int d=m;d>=1;d--)
if(a%d==0&&b%d==0)return d;
}

int cmmdc3(int a,int b)


{
int d=a>b?b:a;
for( ; ; d--)
if(a%d==0&&b%d==0)return d;
}

int cmmdc4(int a,int b)


{
while(a!=b)
if(a>b)a=a-b;
else b=b-a;
return a;
}

int cmmdc5(int a,int b)


{
while(a!=b) a>b?a=a-b:b=b-a;
return a;
}

int cmmdc6(int a,int b )


{
int r;
while(b)
{r=a%b;a=b;b=r;}
return a;
}

int cmmdc(int a,int b )


{ int r;
r=a%b;
while(r)a=b,b=r,r=a%b;
return b;
}
/* Cel mai mic multiplu comun a doua numere naturale>0
cmmmc(a,b)=a*b/cmmdc(a,b)
*/

int cmmmc(int a,int b)


{
return a*b/cmmdc(a,b);
}

// CMMDC a n numere naturale>0

int cmmdc (int a[],int n)


{
int d;
d=a[0];
for(int i=1;i<n;i++)
d=cmmdc(d,a[i]);
return d;
}

// CMMMC a n numere naturale>0

int cmmmc(int a[],int n)


{
int m;
m=a[0];
for(int i=1;i<n;i++)
m=cmmmc(m,a[i]);
return m;
}

int main()
{ int a[100],n;
int x,y;
cout<<"x=";cin>>x;cout<<"y=";cin>>y;

cout<<"cmmdc="<<cmmdc(x,y)<<endl;
cout<<"cmmmc="<<cmmmc(x,y)<<endl;

cout<<"n=";cin>>n;
cout<<"Tastati n nr:"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];
cout<<"cmmdc="<<cmmdc(a,n)<<endl;
cout<<"cmmmc="<<cmmmc(a,n);
}

You might also like