Reduce a fraction to its simplest form by using JavaScript

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.

Below examples will illustrate the approach:

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



  • Example:
    Input :simplify("4/6") 
    Output :"2/3"
  • Program:
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <script type = "text/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
    }
    document.write(simplify("4/6") + "<br>");
      
    document.write(simplify(84810,985612));
      
    </script>                    

    chevron_right

    
    

  • 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.

  • Example:
    Input: 15, 20
    Output: 3,4
  • Program:
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <script type = "text/javaScript">
      
    // Simplified fraction by finding the GCD and dividing by it.
    function reduce(numer,denomin){
      var gcd = function gcd(a,b){
        return b ? gcd(b, a%b) : a;
      };
      gcd = gcd(numer,denomin);
      return [numer/gcd, denomin/gcd];
    }
      
    document.write(reduce(15,20) + "<br>");
      
    document.write(reduce(84810,985612));
    </script>                    

    chevron_right

    
    

  • Output:
    3,4
    42405,492806



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.