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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 (b % a, a);
}
  
int main()
{
    int a = 2;
    int b = 4;
    cout << gcd(a, b);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
  
?>

chevron_right


Output:

2


My Personal Notes arrow_drop_up

self motivated and passionate programmer

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.