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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **DSA Live Classes**