Convert Decimal To Irreducible Fraction
Posted: 3 Aug, 2020
Difficulty: Easy
You are given a real number, 'NUM'. You have to represent this number as an irreducible fraction of the form A/B, where 'A' and 'B' are the numerator and denominator respectively.
A fraction is called irreducible when the greatest common divisor (GCD/HCF) of the numerator and denominator is one.
Example :
Given 'NUM' : 1.75
Irreducible fraction can be represented as 7/4.
Note that 14/8 = 1.75 as well, but 14/8 is not an irreducible fraction.
Note :
In order to preserve precision, the real number will be given to you in the form of two strings : the integer part, and the fractional part.
The integer part will contain not more than 8 digits, whereas the fractional part will always contain 8 digits.
Input Format :
The first input line contains an integer 'T', the number of test cases.
Then 'T' test cases follow.
For each test case, the only input line contains a real number 'NUM', in the form of two single space-separated strings: the integer part and the fractional part.
Output Format :
The output for each test case contains two single space-separated integers 'A' and 'B', the numerator and denominator of the irreducible fraction representing 'NUM' respectively.
The output for each test case will be printed in a separate line.
Note :
You don't need to print anything. It has already been taken care of, just implement the given function.
Constraints :
1 <= T <= 10^5
0 < NUM < 10^8
Time Limit : 1 sec
Approach 1
Let : intPart(NUM): The integer part of the given number.
fracPart(NUM): The fractional part of the given number.
Let’s convert the fractional part into a fraction of the form A/B, where ‘A’ and ‘B’ are integers. Here is the algorithm :
- For this we multiply and divide by 10^8. (Remember that the fractional part has exactly 8 digits.) The fractional part has now been converted to an integer, just like the intPart(NUM).
- Now, our number can be written as ((intPart(NUM) * 10^8) + fracPart(NUM)) / 10^8. We have successfully converted our real number into a fraction.
- Finally, to make it irreducible, we find the greatest common divisor of the numerator and denominatorn and divide both of them by it.