Given three integers X, Y, and Z. the task is to find the minimum distance between any two multiples of the given integers.
Note: Common multiples are not considered.
Examples:
Input: X = 5, Y = 2, Z = 3
Output: 1
Explanation: The multiples if arranged in sorted order are 0, 2, 3, 4, 5, 6, 8. . .
Out of which the minimum possible difference is 1 between 2 and 3.Input: X = 3, Y = 6, Z = 12
Output: 3
Approach: To solve the problem follow the below idea:
- Difference between the multiples of two numbers A and B is actually the multiples of GCD(A, B).
- To calculate the minimum possible difference between the multiple of any two numbers, calculate the GCD of those two numbers.
Follow the given steps to solve the problem:
- Calculate the greatest common divisor(GCD) between every pair of numbers.
- Return the minimum value by comparing the values calculated in the above step.
Below is the implementation for the above approach:
C++
// C++ program for above approach #include <bits/stdc++.h> using namespace std; // Function to calculate the minimum // possible difference between any two numbers int minimumdifference( int H1, int H2, int H3) { int ans = 0; int d1, d2, d3; // Calculating GCD between different // pairs of numbers d3 = __gcd(H1, H3); d1 = __gcd(H1, H2); d2 = __gcd(H2, H3); // Taking minimum of all GCD's ans = min(d1, d2); ans = min(d3, ans); return ans; } // Driver code int main() { int X = 5, Y = 2, Z = 3; // Function call cout << minimumdifference(X, Y, Z); return 0; } |
Java
// JAVA program for the above approach import java.io.*; class GFG { // Function to calculate gcd of two numbers public static int gcd( int a, int b) { return b== 0 ? a : gcd(b, a%b); } // Function to calculate the minimum // possible difference between any two numbers static int minimumdifference( int H1, int H2, int H3) { int ans= 0 ; int d1, d2, d3; // Calculating GCD between different // pairs of numbers d3 = gcd(H1, H3); d1 = gcd(H1, H2); d2 = gcd(H2, H3); // Taking minimum of all GCD's ans = Math.min(d1, d2); ans = Math.min(d3, ans); return ans; } // Driver code public static void main (String[] args) { int X = 5 , Y = 2 , Z = 3 ; // function call System.out.println(minimumdifference(X, Y, Z)); } } // This code is written by Ujjwal Kumar Bhardwaj |
Python3
# python 3 code to implement the above approach def __gcd(x, y): while (y): x, y = y, x % y return abs (x) # Function to calculate the minimum # possible difference between any two numbers def minimumdifference(H1, H2, H3) : ans = 0 d1,d2,d3 = 0 , 0 , 0 # Calculating GCD between different # pairs of numbers d3 = __gcd(H1, H3) d1 = __gcd(H1, H2) d2 = __gcd(H2, H3) # Taking minimum of all GCD's ans = min (d1, d2) ans = min (d3, ans) return ans # Driver Code if __name__ = = "__main__" : X,Y,Z = 5 , 2 , 3 # Function call print (minimumdifference(X, Y, Z)) #this code is contributed by aditya942003patil |
C#
// C# program for above approach: using System; class GFG { // Function to calculate gcd of two numbers public static int gcd( int a, int b) { return b==0 ? a : gcd(b, a%b); } // Function to calculate the minimum // possible difference between any two numbers static int minimumdifference( int H1, int H2, int H3) { int ans=0; int d1, d2, d3; // Calculating GCD between different // pairs of numbers d3 = gcd(H1, H3); d1 = gcd(H1, H2); d2 = gcd(H2, H3); // Taking minimum of all GCD's ans = Math.Min(d1, d2); ans = Math.Min(d3, ans); return ans; } // Driver Code public static void Main() { int X = 5, Y = 2, Z = 3; // function call Console.Write(minimumdifference(X, Y, Z)); } } // This code is contributed by code_hunt. |
Javascript
<script> // JavaScript program for above approach // Function for __gcd const __gcd = (a, b) => { if (!b) return a; return __gcd(b, a % b); } // Function to calculate the minimum // possible difference between any two numbers const minimumdifference = (H1, H2, H3) => { let ans = 0; let d1, d2, d3; // Calculating GCD between different // pairs of numbers d3 = __gcd(H1, H3); d1 = __gcd(H1, H2); d2 = __gcd(H2, H3); // Taking minimum of all GCD's ans = Math.min(d1, d2); ans = Math.min(d3, ans); return ans; } // Driver code let X = 5, Y = 2, Z = 3; // Function call document.write(minimumdifference(X, Y, Z)); // This code is contributed by rakeshsahni </script> |
1
Time Complexity: O(max(logX, logY, logZ))
Auxiliary Space: O(1)