Given values of A and B, find the minimum positive integer value of X that can be achieved in the equation X = P*A + P*B, Here P and Q can be zero or any positive or negative integer.
Examples:
Input: A = 3 B = 2 Output: 1 Input: A = 2 B = 4 Output: 2
Basically we need to find P and Q such that P*A > P*B and P*A – P*B is minimum positive integer. This problem can be easily solved by calculating GCD of both numbers.
For example:
For A = 2 And B = 4 Let P = 1 And Q = 0 X = P*A + Q*B = 1*2 + 0*4 = 2 + 0 = 2 (i. e GCD of 2 and 4) For A = 3 and B = 2 let P = -1 And Q = 2 X = P*A + Q*B = -1*3 + 2*2 = -3 + 4 = 1 ( i.e GCD of 2 and 3 )
Below is the implementation of above idea:
CPP
// CPP Program to find // minimum value of X // in equation X = P*A + Q*B #include <bits/stdc++.h> using namespace std;
// Utility function to calculate GCD int gcd( int a, int b)
{ if (a == 0)
return b;
return gcd(b % a, a);
} // Driver Code int main()
{ int a = 2;
int b = 4;
cout << gcd(a, b);
return 0;
} |
Java
// Java Program to find // minimum value of X // in equation X = P*A + Q*B import java.util.*;
import java.lang.*;
class GFG {
// utility function to calculate gcd
public static int gcd( int a, int b)
{
if (a == 0 )
return b;
return gcd(b % a, a);
}
// Driver Program
public static void main(String[] args)
{
int a = 2 ;
int b = 4 ;
System.out.println(gcd(a, b));
}
} |
Python3
# Python3 Program to find # minimum value of X # in equation X = P * A + Q * B # Function to return gcd of a and b def gcd(a, b):
if a = = 0 :
return b
return gcd(b % a, a)
a = 2
b = 4
print (gcd(a, b))
|
C#
// CSHARP Program to find // minimum value of X // in equation X = P*A + Q*B using System;
class GFG {
// function to get gcd of a and b
public static int gcd( int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
// Driver Code
static public void Main()
{
int a = 2;
int b = 4;
Console.WriteLine(gcd(a, b));
}
} |
PHP
// PHP Program to find // minimum value of X // in equation X = P*A + Q*B <?php // Function to return // gcd of a and b function gcd( $a , $b )
{ if ( $a == 0)
return $b ;
return gcd( $b % $a , $a );
} // Driver Code $a = 2;
$b = 4;
echo gcd( $a , $b );
?> |
Javascript
<script> // javascript Program to find // minimum value of X // in equation X = P*A + Q*B // utility function to calculate gcd
function gcd(a , b) {
if (a == 0)
return b;
return gcd(b % a, a);
}
// Driver Program
var a = 2;
var b = 4;
document.write(gcd(a, b));
// This code contributed by umadevi9616 </script> |
Output
2
Time Complexity: O(log(min(a, b)))
Auxiliary Space: O(log(min(a, b)))