Open In App

Reduce a fraction to its simplest form by using JavaScript

Improve
Improve
Like Article
Like
Save
Share
Report

A fraction is simplified if there are no common factors (except 1) between the numerator and the denominator. For example, 4/6 is not simplified, since 4 and 6 both share 2 as a factor. If improper fractions can be transformed into integers. There are two possible ways to simplify the fraction by using JavaScript.  

The below examples will illustrate the approach:

Using math.js simplify() function: In this function, few rules are applied to the expression, you can create your own custom-made rules. Basically, this function is like a lambda function. Where you can make the rules according to your requirements 

Program: 

javaScript




// main function
function simplify(str) {
    var result = '', data = str.split('/'),
        numOne = Number(data[0]),
        numTwo = Number(data[1]);
    for (var i = Math.max(numOne, numTwo); i > 1; i--) {
    if ((numOne % i == 0) && (numTwo % i == 0)) {
        numOne /= i;
        numTwo /= i;
    }
    }
    if (numTwo === 1) {
    result = numOne.toString()
    } else {
    result = numOne.toString() + '/' + numTwo.toString()
    }
    return result
}
console.log(simplify("4/6"));
  
console.log(simplify(84810,985612));


Output:  

2/3
42405/492806

Using JavaScript _.reduce() function: The _.reduce() is an inbuilt function in JavaScript which is used to transform an array’s / object’s properties into one single value or is used to create a single result from a given list of values. When all the elements of the list are passed to the function/iterate and no more elements remain then the _.each loop ends. Here we will find the GCD of those numbers and dividing it by GCD we can make the output simpler. 

Program:  

Javascript




// Simplified fraction by finding the GCD and dividing by it.
function reduce(number,denomin){
var gcd = function gcd(a,b){
    return b ? gcd(b, a%b) : a;
};
gcd = gcd(number,denomin);
return [number/gcd, denomin/gcd];
}
  
console.log(reduce(15,20));
  
console.log(reduce(84810,985612));


Output:  

3,4
42405,492806


Last Updated : 23 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads