Tuesday, December 6, 2011

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