Given a fraction in form of a/b where a & b are positive integers. Find ?X such that when it is added to numerator as well as denominator of given fraction it will result into a new Ir-reducible fraction c/d.
Examples:
Input : a = 4, b = 10, c = 1, d = 2 Output : ?X = 2 Explanation : (a + ?X)/(b + ?X) = (4 + 2) / (10 + 2) = 6/12 = 1/2 = c/d Input : a = 4, b = 10, c = 2, d = 5 Output : ?X = 0 Explanation : (a + ?X) / (b + ?X) = (4) / (10) = 2 / 5 = c/d
To solve this type of problem rather than implementing just a programming approach we have to do a little of mathematics. mathematics just necessary is as:
As per question we have to find ?X such that: => (a + ?X) / (b + ?X) = c / d => ad + d?X = bc + c?X => d?X - c?X = bc - ad => ?X (d - c) = bc -ad => ?X = (bc - ad) / (d - c)
So, in a way to finding ?X we have to only calculate
C++
// C++ Program to find deltaX #include <bits/stdc++.h> using namespace std;
// function to find delta X int findDelta( int a, int b, int c, int d)
{ return (b * c - a * d) / (d - c);
} // driver program int main()
{ int a = 3, b = 9, c = 3, d = 5;
// u0394X is code for delta sign
cout << "\u0394X = " << findDelta(a, b, c, d);
return 0;
} |
Java
// Java Program to // find deltaX import java.io.*;
class GFG
{ // function to find delta X
static int findDelta( int a, int b,
int c, int d)
{
return (b * c - a *
d) / (d - c);
}
// Driver Code
public static void main(String args[])
{
int a = 3 , b = 9 ,
c = 3 , d = 5 ;
// u0394X is code
// for delta sign
System.out.print( "\u0394X = " +
findDelta(a, b, c, d));
}
} // This code is contributed // by Manish Shaw(manishshaw1) |
Python3
# Python Program to find deltaX # !/usr/bin/python # coding=utf-8 # function to find delta X def findDelta(a, b, c, d) :
return int ((b * c -
a * d) / (d - c));
# Driver Code a = 3 ; b = 9 ;
c = 3 ; d = 5 ;
# u0394X is code # for delta sign print ( "X = {}" .
format (findDelta(a, b,
c, d)));
# This code is contributed by # Manish Shaw(manishshaw1) |
C#
// C# Program to // find deltaX using System;
class GFG
{ // function to find delta X static int findDelta( int a, int b,
int c, int d)
{ return (b * c - a *
d) / (d - c);
} // Driver Code static void Main()
{ int a = 3, b = 9,
c = 3, d = 5;
// u0394X is code
// for delta sign
Console.Write( "\u0394X = " +
findDelta(a, b, c, d));
} } // This code is contributed // by Manish Shaw(manishshaw1) |
PHP
<?php // PHP Program to find deltaX // function to find delta X function findDelta( $a , $b ,
$c , $d )
{ return ( $b * $c -
$a * $d ) / ( $d - $c );
} // Driver Code $a = 3; $b = 9;
$c = 3; $d = 5;
// u0394X is code for delta sign echo "?X = " .findDelta( $a , $b ,
$c , $d );
// This code is contributed by // Manish Shaw(manishshaw1) ?> |
Javascript
<script> // JavaScript Program to // find deltaX // function to find delta X
function findDelta(a, b, c, d)
{
return (b * c - a *
d) / (d - c);
}
// Driver Code let a = 3, b = 9,
c = 3, d = 5;
// u0394X is code
// for delta sign
document.write( "\u0394X = " +
findDelta(a, b, c, d));
// This code is contributed by splevel62. </script> |
Output:
?X = 6
Time Complexity: O(1)
Auxiliary Space: O(1)