Given two integers **p** and **q**, the task is to find the smallest number **K** such that **K % p = 0** and **q % K = 0**. If no such **K** is possible then print **-1**.

**Examples:**

Input:p = 2, q = 8Output:2

2 % 2 = 0 and 8 % 2 = 0

Input:p = 5, q = 14Output:-1

**Approach:** In order for **K** to be possible, **q** must be divisible by **p**.

- If
**q % p = 0**then print**p** - Else print
**-1**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Function to return the minimum` `// value K such that K % p = 0` `// and q % k = 0` `int` `getMinVal(` `int` `p, ` `int` `q)` `{` ` ` ` ` `// If K is possible` ` ` `if` `(q % p == 0)` ` ` `return` `p;` ` ` ` ` `// No such K is possible` ` ` `return` `-1;` `}` ` ` `// Driver code` `int` `main()` `{` ` ` `int` `p = 24, q = 48;` ` ` `cout << getMinVal(p, q);` ` ` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `import` `java.io.*;` ` ` `class` `GFG` `{` ` ` `// Function to return the minimum` `// value K such that K % p = 0` `// and q % k = 0` `static` `int` `getMinVal(` `int` `p, ` `int` `q)` `{` ` ` ` ` `// If K is possible` ` ` `if` `(q % p == ` `0` `)` ` ` `return` `p;` ` ` ` ` `// No such K is possible` ` ` `return` `-` `1` `;` `}` ` ` `// Driver code` `public` `static` `void` `main (String[] args) ` `{` ` ` `int` `p = ` `24` `, q = ` `48` `;` ` ` `System.out.println(getMinVal(p, q));` `}` `}` ` ` `// This code is contributed by jit_t.` |

## Python3

`# Python3 implementation of the approach` ` ` `# Function to return the minimum ` `# value K such that K % p = 0 ` `# and q % k = 0` `def` `getMinVal(p, q):` ` ` ` ` `# If K is possible` ` ` `if` `q ` `%` `p ` `=` `=` `0` `:` ` ` `return` `p` ` ` ` ` `# No such K is possible` ` ` `return` `-` `1` ` ` `# Driver code` `p ` `=` `24` `; q ` `=` `48` `print` `(getMinVal(p, q))` ` ` `# This code is contributed` `# by Shrikant13` |

## C#

`// C# implementation of the approach` `using` `System;` ` ` `class` `GFG` `{` ` ` `// Function to return the minimum` `// value K such that K % p = 0` `// and q % k = 0` `static` `int` `getMinVal(` `int` `p, ` `int` `q)` `{` ` ` ` ` `// If K is possible` ` ` `if` `(q % p == 0)` ` ` `return` `p;` ` ` ` ` `// No such K is possible` ` ` `return` `-1;` `}` ` ` `// Driver code` `public` `static` `void` `Main () ` `{` ` ` `int` `p = 24, q = 48;` ` ` `Console.WriteLine(getMinVal(p, q));` `}` `}` ` ` `// This code is contributed ` `// by Code_Mech.` |

## PHP

`<?php` `// PHP implementation of the approach` ` ` `// Function to return the minimum` `// value K such that K % p = 0` `// and q % k = 0` `function` `getMinVal(` `$p` `, ` `$q` `)` `{` ` ` ` ` `// If K is possible` ` ` `if` `(` `$q` `% ` `$p` `== 0)` ` ` `return` `$p` `;` ` ` ` ` `// No such K is possible` ` ` `return` `-1;` `}` ` ` `// Driver code` `$p` `= 24;` `$q` `= 48;` `echo` `getMinVal(` `$p` `, ` `$q` `);` ` ` `// This code is contributed by ajit.` `?>` |

**Output:**

24

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**