Está en la página 1de 2

/*Programaquehallaelmcddedosnaturalespositivos*/

/*Seincluyen4versiones:2iterativasy2recursivas*/
/*SeutilizaelAlgoritmodeEuclides*/
/*Seutilizalapropiedad:sia>b,mcd(a,b)=mcd(ab,b)*/
#include<stdio.h>
/*FuncionquehallaydevuelveelmcdmedianteelAlgoritmodeEuclides*/
/*deformaiterativa*/
intmcd1_iter(intm,intn)
{

intr;

while(r!=0)
{

r=m%n;

m=n;

n=r;
}
return(m);/*meselultimorestononulo*/

/*FuncionquehallaydevuelveelmcdmedianteelAlgoritmodeEuclides*/
/*deformarecursiva*/
intmcd1_rec(intm,intn)
{

intr;

r=m%n;

if(r==0)

return(n);

else

return(mcd1_rec(n,r));

/*Funcionquehallaydevuelveelmcdmediantelapropiedadcitada*/
/*deformaiterativa*/
intmcd2_iter(intm,intn)
{

while(m!=n)

if(m>n)

m=mn;

else

n=nm;;

return(m);
}
/*Funcionquehallaydevuelveelmcdmediantelapropiedadcitada*/
/*deformarecursiva*/
intmcd2_rec(intm,intn)
{

if(m==n)

return(m);

elseif(m>n)

return(mcd2_rec(mn,n));

else

return(mcd2_rec(m,nm));

voidmain()
{

intm,n;

/*Pidelosnumeros*/
printf("\nIntroduzcadosnumeros:\n");
scanf("%d%*c%d%*c",&m,&n);

/*Antescompruebaqueseanpositivos*/
if((m<=0)||(n<=0))

printf("\nError:Hayalgundatonopositivo\n");

/*Calculaelmcd*/
else
{

printf("\nElmcdes%d.\n",mcd1_iter(m,n));

printf("\nElmcdes%d.\n",mcd1_rec(m,n));

printf("\nElmcdes%d.\n",mcd2_iter(m,n));

printf("\nElmcdes%d.\n",mcd2_rec(m,n));
}

También podría gustarte