Given two positive integers n and k. Find minimum positive integer x such that the (x % k) * (x / k) == n, where % is the modulus operator and / is the integer division operator.
Input : n = 4, k = 6
Explanation : (10 % 6) * (10 / 6) = (4) * (1) = 4 which is equal to n
Input : n = 5, k = 5
Output : 26
Approach: The problem has been solved using the value of K in the Set-1. In this article, we will use the factor method to solve the above problem. Given below are the steps to solve the above problem.
- Since the equation is of the form a*b = N, so a and b will be the factors of N.
- Iterate from 1 to sqrt(N) to get all the factors.
- The factors i and n/i can be either of A or B.
- If i is A and n/i is B then the number will be i*k + (n/i). We can check if this number is the one by comparing it with N, if it is then it is a number which satisfies the equation.
- If i is B and n/i is A then the number will be (n/i)*k + (i). We can check if this number is the one by comparing it with N, if it is then it is a number which satisfies the equation.
- Obtain all the numbers which satisfies the equation and print the smallest among them.
Below is the implementation of the above approach.
# Python3 program to find the minimum
# positive X such that the given
# equation holds true
# This function gives the required
def minimumX(n, k):
mini = sys.maxsize
# Iterate for all the factors
i = 1
while i * i <= n : # Check if i is a factor if (n % i == 0) : fir = i sec = n // i num1 = fir * k + sec # Consider i to be A and n/i to be B res = (num1 // k) * (num1 % k) if (res == n): mini = min(num1, mini) num2 = sec * k + fir res = (num2 // k) * (num2 % k) # Consider i to be B and n/i to be A if (res == n): mini = min(num2, mini) i += 1 return mini # Driver Code if __name__ == "__main__": n = 4 k = 6 print (minimumX(n, k)) n = 5 k = 5 print (minimumX(n, k)) # This code is contributed by ita_c [tabby title = "C#"]
Time Complexity : O(sqrt(N)), where N is the given positive integer.
- Divide two integers without using multiplication, division and mod operator | Set2
- Find minimum x such that (x % k) * (x / k) == n
- Find the value of N when F(N) = f(a)+f(b) where a+b is the minimum possible and a*b = N
- Find minimum possible values of A, B and C when two of the (A + B), (A + C) and (B + C) are given
- Find minimum sum of factors of number
- Find minimum area of rectangle with given set of coordinates
- Find the minimum value of m that satisfies ax + by = m and all values after m also satisfy
- Find the minimum number of steps to reach M from N
- Find minimum possible digit sum after adding a number d
- Find minimum number of coins that make a given value
- Find minimum speed to finish all Jobs
- Find the maximum possible value of the minimum value of modified array
- Find element using minimum segments in Seven Segment Display
- Find the minimum difference between Shifted tables of two numbers
- Find the K-th minimum element from an array concatenated M times
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.