Minimum positive integer value possible of X for given A and B in X = P*A + Q*B
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
#include <bits/stdc++.h>
using namespace std;
int gcd( int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
int main()
{
int a = 2;
int b = 4;
cout << gcd(a, b);
return 0;
}
|
Java
import java.util.*;
import java.lang.*;
class GFG {
public static int gcd( int a, int b)
{
if (a == 0 )
return b;
return gcd(b % a, a);
}
public static void main(String[] args)
{
int a = 2 ;
int b = 4 ;
System.out.println(gcd(a, b));
}
}
|
Python3
def gcd(a, b):
if a = = 0 :
return b
return gcd(b % a, a)
a = 2
b = 4
print (gcd(a, b))
|
C#
using System;
class GFG {
public static int gcd( int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
static public void Main()
{
int a = 2;
int b = 4;
Console.WriteLine(gcd(a, b));
}
}
|
PHP
<?php
function gcd( $a , $b )
{
if ( $a == 0)
return $b ;
return gcd( $b % $a , $a );
}
$a = 2;
$b = 4;
echo gcd( $a , $b );
?>
|
Javascript
<script>
function gcd(a , b) {
if (a == 0)
return b;
return gcd(b % a, a);
}
var a = 2;
var b = 4;
document.write(gcd(a, b));
</script>
|
Time Complexity: O(log(min(a, b)))
Auxiliary Space: O(log(min(a, b)))
Last Updated :
01 Sep, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...