Open In App

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

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),``        ``numTwo = Number(data);``    ``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```