Greatest Common Divisor (GCD) - Recursive Non Recursive in C

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



Post a Comment