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