Sunday, 8 May 2011

WAP To find the GCD (greatest common divisor) of two given integers

/* Write C programs that use both recursive and non-recursive functions

To find the GCD (greatest common divisor) of two given integers.*/


#include<stdio.h>

#include<conio.h>

#include<math.h>


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);

}

No comments:

Post a Comment