Sunday, November 8, 2009

GREATEST COMMON DIVISOR

/* Write C programs that use both recursive and non-recursive functions
To find the GCD (greatest common divisor) of two given integers.*/

#include
#include
#include

unsigned int GcdRecursive(unsigned m, unsigned n);
unsigned int GcdNonRecursive(unsigned p,unsigned q);

int main(void)
{
int a,b,iGcd;
clrscr();

printf("Enter the two numbers whose GCD is to be found: ");
scanf("%d%d",&a,&b);

printf("GCD of %d and %d Using Recursive Function is %d\n",a,b,GcdRecursive(a,b));
printf("GCD of %d and %d Using Non-Recursive Function is %d\n",a,b,GcdNonRecursive(a,b));

getch();
}

/* Recursive Function*/
unsigned int GcdRecursive(unsigned m, unsigned n)
{
if(n>m)
return GcdRecursive(n,m);
if(n==0)
return m;
else
return GcdRecursive(n,m%n);
}

/* Non-Recursive Function*/
unsigned int GcdNonRecursive(unsigned p,unsigned q)
{
unsigned remainder;
remainder = p-(p/q*q);

if(remainder==0)
return q;
else
GcdRecursive(q,remainder);
}

1 comment:

FOLLOWERS