Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Find LCM of rational number in C++
Here we will see how to find the LCM of Rational numbers. We have a list of rational numbers. Suppose the list is like {2/7, 3/14, 5/3}, then the LCM will be 30/1.
To solve this problem, we have to calculate LCM of all numerators, then gcd of all denominators, then the LCM of rational numbers, will be like −
$$LCM =\frac{LCM\:of\:all\:??????????}{GCD\:of\:all\:????????????}$$
Example
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int LCM(int a, int b) {
return (a * b) / (__gcd(a, b));
}
int numeratorLCM(vector<pair<int, int> > vect) {
int result = vect[0].first;
for (int i = 1; i < vect.size(); i++)
result = LCM(vect[i].first, result);
return result;
}
int denominatorGCD(vector<pair<int, int> >vect) {
int res = vect[0].second;
for (int i = 1; i < vect.size(); i++)
res = __gcd(vect[i].second, res);
return res;
}
void rationalLCM(vector<pair<int, int> > vect) {
cout << numeratorLCM(vect) << "/"<< denominatorGCD(vect);
}
int main() {
vector<pair<int, int> > vect;
vect.push_back(make_pair(2, 7));
vect.push_back(make_pair(3, 14));
vect.push_back(make_pair(5, 3));
cout << "LCM of rational numbers: "; rationalLCM(vect);
}
Output
LCM of rational numbers: 30/1
Advertisements
