Skip to main content

Calculate GCD / HCF of Two Numbers using Recursion



Write to calculate GCD / HCF of 2 number
(i)                 with recursion
(ii)               without recursion

#include<iostream>
using namespace std;

int HCF(int x, int y)
{
    int tmp;
    if(x<y)
    {
        tmp=x;
        x=y;
        y=tmp;//using tmp to swap x and y    
    }    
    while(x%y!=0)
    {
        tmp=x%y; //using tmp to store remainder
        y=x;
        x=tmp;    
    }
    return(y);
}

int HCF_rec(int x, int y){
    if(x%y==0)
    {
        return(y);
    }
    else
    {
        HCF(y,x%y);
    }
}

void main()
{
    int a,b,k;

cout<<"\n Enter Two Numbers: ";
cin>>a>>b;
    k=HCF(a,b);  
cout<<"\n\n Without Recursion";
    cout<<"\n\n HCF ("<<a<<","<<b<<") = "<<k<<"\n\n";
k=HCF_rec(a,b);  
cout<<"\n\n Using Recursion";
    cout<<"\n\n HCF ("<<a<<","<<b<<") = "<<k<<"\n\n";
system("pause");
}

Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};