Given two integer p and q, the task is to find the minimum possible number x such that q % x = 0 and x % p = 0. If the conditions aren’t true for any number then print -1.
Examples:
Input: p = 3, q = 99
Output: 3
99 % 3 = 0
3 % 3 = 0
Input: p = 2, q = 7
Output: -1
Approach: If a number x satisfies the given condition then it’s obvious that q will be divided by p i.e. q % p = 0 because x is a multiple of p and q is a multiple of x.
So the minimum possible value of x will be the GCD of p and q and when q is not divisible by p then no number will satisfy the given condition.
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 valid number// that satisfies the given conditionsint minValidNumber(int p, int q){ // If possible if (q % p == 0) return __gcd(p, q); else return -1;}// Driver Codeint main(){ int p = 2, q = 6; cout << minValidNumber(p, q); return 0;} |
Java
//Java implementation of the approachimport java.io.*;class GFG { // Function to calculate gcd static int __gcd(int a, int b) { // Everything divides 0 if (a == 0 || b == 0) return 0; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a - b, b); return __gcd(a, b - a); }// Function to return the minimum valid number// that satisfies the given conditionsstatic int minValidNumber(int p, int q){ // If possible if (q % p == 0) return __gcd(p, q); else return -1;}// Driver Code public static void main (String[] args) { int p = 2, q = 6; System.out.print(minValidNumber(p, q)); // THis code is contributed by Sachin. }} |
Python3
# Python3 implementation of the approach from math import gcd# Function to return the minimum # valid number that satisfies the# given conditions def minValidNumber(p, q) : # If possible if (q % p == 0) : return gcd(p, q) else : return -1# Driver Code if __name__ == "__main__" : p, q = 2, 6; print(minValidNumber(p, q))# This code is contributed by Ryuga |
C#
// C# implementation of the approachusing System;class GFG{ // Function to calculate gcd static int __gcd(int a, int b) { // Everything divides 0 if (a == 0 || b == 0) return 0; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a - b, b); return __gcd(a, b - a); }// Function to return the minimum valid number// that satisfies the given conditionsstatic int minValidNumber(int p, int q){ // If possible if (q % p == 0) return __gcd(p, q); else return -1;}// Driver Codepublic static void Main(){ int p = 2, q = 6; Console.Write(minValidNumber(p, q));}}// THis code is contributed// by Mukul Singh |
PHP
<?php// Php implementation of the approachfunction gcd($a, $b) { // Everything divides 0 if($b == 0) return $a ; return gcd($b , $a % $b); } // Function to return the minimum valid // number that satisfies the given conditionsfunction minValidNumber($p, $q){ // If possible if ($q % $p == 0) return gcd($p, $q); else return -1;}// Driver Code$p = 2; $q = 6;echo minValidNumber($p, $q);// This code is contributed by ita_c?> |
Javascript
<script> // Javascript implementation of the approach // Function to calculate gcd function __gcd(a, b) { // Everything divides 0 if (a == 0 || b == 0) return 0; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a - b, b); return __gcd(a, b - a); } // Function to return the minimum valid number // that satisfies the given conditions function minValidNumber(p, q) { // If possible if (q % p == 0) return __gcd(p, q); else return -1; } let p = 2, q = 6; document.write(minValidNumber(p, q)); </script> |
2
Time Complexity: O(logn)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Read More here on that Topic: geeksforgeeks.org/minimum-value-that-divides-one-number-and-divisible-by-other/ […]
… [Trackback]
[…] Find More on on that Topic: geeksforgeeks.org/minimum-value-that-divides-one-number-and-divisible-by-other/ […]
… [Trackback]
[…] Find More Information here to that Topic: geeksforgeeks.org/minimum-value-that-divides-one-number-and-divisible-by-other/ […]