Q-08: | Write a C/C++ program to calculate GCD of two numbers:
(i) Using Recursion (ii) Using Iteration |
---|
Recursion Using - C
#include<stdio.h> int GCD(int a, int b); void main() { int a, b; printf("Enter two Positive Integers: "); scanf("%d %d", &a, &b); printf("G.C.D of %d and %d is %d.", a, b, GCD(a, b)); } int GCD(int a, int b) { if (b != 0) return GCD(b, a % b); else return a; }
OUTPUT
Enter two Positive Integers: 40 60 G.C.D of 40 and 60 is 20.
Iteration Using - C
#include<stdio.h> int GCD(int a, int b); void main() { int a, b; printf("Enter two Positive Integers: "); scanf("%d %d", &a, &b); printf("G.C.D of %d and %d is %d.", a, b, GCD(a,b)); } int GCD(int a, int b) { int i, gcd; for(i=1; i <= a && i <= b; ++i) { if(a%i==0 && b%i==0) gcd = i; } return gcd; }
OUTPUT
Enter two Positive Integers: 144 24 G.C.D of 144 and 24 is 24.
Rescursion Using - C++
#include<iostream> using namespace std; int GCD(int a, int b); int main() { int a, b; cout<< "Enter two Positive Integers: "; cin>> a>> b; cout<< "G.C.D of "<< a<< " and "<< b<< " is "<< GCD(a,b); return 0; } int GCD(int a, int b) { if (b != 0) return GCD(b, a % b); else return a; }
OUTPUT
Enter two Positive Integers: 30 6 G.C.D of 30 and 6 is 6
Iteration Using - C++
#include<iostream> using namespace std; int GCD(int a, int b); int main() { int a, b; cout<< "Enter two Positive Integers: "; cin>> a>> b; cout<< "G.C.D of "<< a<< " and "<< b<< " is "<< GCD(a,b); return 0; } int GCD(int a, int b) { int i, gcd; for(i=1; i <= a && i <= b; ++i) { if(a%i==0 && b%i==0) gcd = i; } return gcd; }
OUTPUT
Enter two Positive Integers: 150 50 G.C.D of 150 and 50 is 50