Open In App

Reduce the fraction to its lowest form

Last Updated : 17 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given two integers x and y and where x is divisible by y. It can be represented in the form of a fraction x/y. The task is to reduce the fraction to its lowest form.
Examples: 

Input : x = 16, y = 10
Output : x = 8, y = 5

Input : x = 10, y = 8
Output : x = 5, y = 4

Approach: Both of the values x and y will be divisible by their greatest common divisor. So if we divide x and y from the gcd(x, y) then x and y can be reduced to its simplest form.

Algorithm:

  • Create the “reduceFraction” function, which has the two integer inputs x and y.
  • Declare the variable d as an integer.
  • Call the __gcd() method with the inputs x and y, and then save the outcome in d.
  • Divide x by d, then put the outcome back into x.
  • Divide y by d, then add the answer back into y.
  • Print the lowered fraction together with the revised x and y values.
     

Below is the implementation of the above approach: 

C++




// C++ program to reduce a fraction x/y
// to its lowest form
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to reduce a fraction to its lowest form
void reduceFraction(int x, int y)
{
    int d;
    d = __gcd(x, y);
 
    x = x / d;
    y = y / d;
 
    cout << "x = " << x << ", y = " << y << endl;
}
 
// Driver Code
int main()
{
    int x = 16;
    int y = 10;
 
    reduceFraction(x, y);
 
    return 0;
}


Java




// Java program to reduce a fraction x/y
// to its lowest form
class GFG
{
 
// Function to reduce a fraction to its lowest form
static void reduceFraction(int x, int y)
{
    int d;
    d = __gcd(x, y);
 
    x = x / d;
    y = y / d;
 
    System.out.println("x = " + x + ", y = " + y);
}
 
static int __gcd(int a, int b)
{
    if (b == 0)
        return a;
    return __gcd(b, a % b);
     
}
 
// Driver Code
public static void main(String[] args)
{
    int x = 16;
    int y = 10;
 
    reduceFraction(x, y);
}
}
 
/* This code contributed by PrinciRaj1992 */


Python3




# Python3 program to reduce a fraction x/y
# to its lowest form
from math import gcd
 
# Function to reduce a fraction
# to its lowest form
def reduceFraction(x, y) :
     
    d = gcd(x, y);
 
    x = x // d;
    y = y // d;
 
    print("x =", x, ", y =", y);
 
# Driver Code
if __name__ == "__main__" :
 
    x = 16;
    y = 10;
 
    reduceFraction(x, y);
 
# This code is contributed by Ryuga


C#




// C# program to reduce a fraction x/y
// to its lowest form
using System;
 
class GFG
{
  
// Function to reduce a fraction to its lowest form
static void reduceFraction(int x, int y)
{
    int d;
    d = __gcd(x, y);
  
    x = x / d;
    y = y / d;
  
    Console.WriteLine("x = " + x + ", y = " + y);
}
  
static int __gcd(int a, int b)
{
    if (b == 0)
        return a;
    return __gcd(b, a % b);
      
}
  
// Driver Code
public static void Main(String[] args)
{
    int x = 16;
    int y = 10;
  
    reduceFraction(x, y);
}
}
 
// This code has been contributed by 29AjayKumar


PHP




<?php
// PHP program to reduce a fraction x/y
// to its lowest form
 
// Function to reduce a fraction to its lowest form
function reduceFraction($x, $y)
{
    $d;
    $d = __gcd($x, $y);
 
    $x = $x / $d;
    $y = $y / $d;
 
    echo("x = " . $x . ", y = " . $y);
}
 
function __gcd($a, $b)
{
    if ($b == 0)
        return $a;
    return __gcd($b, $a % $b);
     
}
 
// Driver Code
$x = 16;
$y = 10;
 
reduceFraction($x, $y);
 
// This code is contributed by Rajput-Ji
?>


Javascript




<script>
 
// Javascript program to reduce a fraction x/y
// to its lowest form
 
// Function to reduce a fraction to its lowest form
function reduceFraction(x, y)
{
    let d;
    d = __gcd(x, y);
 
    x = parseInt(x / d);
    y = parseInt(y / d);
 
    document.write("x = " + x + ", y = " + y);
}
 
function __gcd(a, b)
{
    if (b == 0)
        return a;
    return __gcd(b, a % b);
      
}
 
// Driver Code
    let x = 16;
    let y = 10;
 
    reduceFraction(x, y);
 
</script>


Output

x = 8, y = 5

Time Complexity: O(log(max(x,y)))
Auxiliary Space: O(log(max(x,y)))



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads