# Find max of two Rational numbers

Given two Rational numbers, the task is to find the maximum of given two rational numbers.

Examples :

Input : first = 3/4, second= 3/2 Output : 3/2 Input : first = 100/100, second = 300/400 Output : 100/100

A simple solution is to find float values and compare the float values. The float computations may cause precision errors. We can avoid them using below approach.

Say first = 3/2, second = 3/4

- First take a LCM of (4, 2) which is denominator of rational number. so the LCM of this is 4, then divide with both denominator and multiple with numerator of first and second respectively so the denominator value is first numerator = 6, second numerator = 3.
- Then find the max between these two. so here first numerator is max then print first rational number.

`// CPP program to find max between ` `// two Rational numbers ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `struct` `Rational ` `{ ` ` ` `int` `nume, deno; ` `}; ` ` ` `// Get lcm of two number's ` `int` `lcm(` `int` `a, ` `int` `b) ` `{ ` ` ` `return` `(a * b) / (__gcd(a, b)); ` `} ` ` ` `// Get max rational number ` `Rational maxRational(Rational first, Rational sec) ` `{ ` ` ` `// Find the LCM of first->denominator ` ` ` `// and sec->denominator ` ` ` `int` `k = lcm(first.deno, sec.deno); ` ` ` ` ` `// Declare nume1 and nume2 for get the value of ` ` ` `// first numerator and second numerator ` ` ` `int` `nume1 = first.nume; ` ` ` `int` `nume2 = sec.nume; ` ` ` ` ` `nume1 *= k / (first.deno); ` ` ` `nume2 *= k / (sec.deno); ` ` ` ` ` `return` `(nume2 < nume1)? first : sec; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `Rational first = { 3, 2 }; ` ` ` `Rational sec = { 3, 4 }; ` ` ` ` ` `Rational res = maxRational(first, sec); ` ` ` `cout << res.nume << ` `"/"` `<< res.deno; ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

Output :

3/2

## Recommended Posts:

- Find LCM of rational numbers
- HCF of array of fractions (or rational numbers)
- N-th term of George Cantor set of rational numbers
- Algorithm to generate positive rational numbers
- Binary Search for Rational Numbers without using floating point arithmetic
- as_integer_ratio() in Python for reduced fraction of a given rational
- Maximum rational number (or fraction) from an array
- Given two numbers a and b find all x such that a % x = b
- Find two numbers whose sum and GCD are given
- Find two prime numbers with given sum
- Find k numbers which are powers of 2 and have sum N | Set 1
- Find the sum of first N odd Fibonacci numbers
- Find XOR of numbers from the range [L, R]
- Find the sum of the all amicable numbers up to N
- Program to find LCM of 2 numbers without using GCD

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.