- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Reduce the fraction to its lowest form in C++
Given two integers Num1 and Num2 as input. The integers can be represented as fraction Num1/Num2. The goal is to reduce this fraction to its lowest form.
Using GCD to find highest denominator
We will calculate the greatest common divisor of both numbers.
Divide both numbers by that gcd
Set both variables as quotient after division.
Lowest fraction will be Num1/Num2.
Examples
Input − Num1=22 Num2=10
Output − Num1 = 11 Num2 = 5
Lowest Fraction : 11/5
Explanation− GCD of 22 and 10 is 2.
22/2=11 and 10/2=5
Lowest fraction is 11/5
Input− Num1=36 Num2=40
Output− Num1 = 9 Num2 = 10
Lowest Fraction : 9/10
Explanation − GCD of 36 and 40 is 4.
40/4=10 and 36/4=9
Lowest fraction is 9/10
Approach used in the below program is as follows
In this approach we will first calculate the GCD of input numbers using a recursive approach. Divide both numbers by GCD and obtain quotients. These quotients will be part of the lowest fraction.
Take the input variables Num1 and Num2.
Function findGCD(int a, int b) takes num1 and num2 and returns the gcd of both.
If b is 0 return a else return findGCD(b,a%b).
Function lowestFraction(int num1, int num2) takes both numbers as input and prints the lowest fraction.
Take variable denom for gcd.
Set num1=num1/denom and num2=num2/denom.
Print num1 and num2.
Print the lowest fraction as num1/num2.
Example
#include <bits/stdc++.h> using namespace std; int findGCD(int a, int b) { if (b == 0) return a; return findGCD(b, a % b); } void lowestFraction(int num1, int num2){ int denom; denom = findGCD(num1,num2); num1/=denom; num2/=denom; cout<< "Num1 = " << num1<<endl; cout<< "Num2 = " << num2<<endl; cout<< "Lowest Fraction : "<<num1<<"/"<<num2; } int main(){ int Num1 = 14; int Num2 = 8; lowestFraction(Num1,Num2); return 0; }
Output
If we run the above code it will generate the following Output
Num1 = 7 Num2 = 4 Lowest Fraction : 7/4