Related Articles
Smallest positive integer X satisfying the given equation
• Last Updated : 10 Aug, 2020

Given two integers N and K, the task is to find the smallest positive integer X satisfing the equation:

(X / K) * (X % K) = N

Examples:

Input: N = 6, K = 3
Output: 11
Explanation:
For X = 11, (11 / 3) * (11 % 3) = 3 * 2 = 6
Therefore, the following equation satisfies.

Input: N = 4, K = 6
Output: 10
Explanation:
For X = 10, (10 / 6) * (10 % 6) = 1 * 4 = 4
Therefore, the following equation satisfies.

Approach:
The idea is to observe that, since (X / K) * (X % K) = N, therefore, N will be divisible by p = X % K, which is less than K. Therefore, for all i in the range [1, K) try all values of p where: Below is the implementation of the above approach:

## C++

 // C++ Program to implement// the above approach#include using namespace std;  // Function to find out the smallest// positive integer for the equationint findMinSoln(int n, int k){    // Stores the minimum    int minSoln = INT_MAX;      // Iterate till K    for (int i = 1; i < k; i++) {          // Check if n is divisible by i        if (n % i == 0)            minSoln                = min(minSoln, (n / i) * k + i);    }      // Return the answer    return minSoln;}  // Driver Codeint main(){    int n = 4, k = 6;    cout << findMinSoln(n, k);}

## Java

 // Java Program to implement// the above approachimport java.util.*;class GFG{   // Function to find out the smallest// positive integer for the equationstatic int findMinSoln(int n, int k){    // Stores the minimum    int minSoln = Integer.MAX_VALUE;       // Iterate till K    for (int i = 1; i < k; i++)     {           // Check if n is divisible by i        if (n % i == 0)            minSoln = Math.min(minSoln, (n / i) * k + i);    }       // Return the answer    return minSoln;}   // Driver Codepublic static void main(String[] args){    int n = 4, k = 6;    System.out.println(findMinSoln(n, k));}}  // This code is contributed by Ritik Bansal

## Python3

 # Python3 program to implement# the above approachimport sys  # Function to find out the smallest# positive integer for the equationdef findMinSoln(n, k):          # Stores the minimum    minSoln = sys.maxsize;      # Iterate till K    for i in range(1, k):          # Check if n is divisible by i        if (n % i == 0):            minSoln = min(minSoln, (n // i) * k + i);          # Return the answer    return minSoln;  # Driver Codeif __name__ == '__main__':          n = 4;    k = 6;          print(findMinSoln(n, k));  # This code is contributed by amal kumar choubey

## C#

 // C# program to implement// the above approachusing System;  class GFG{  // Function to find out the smallest// positive integer for the equationstatic int findMinSoln(int n, int k){          // Stores the minimum    int minSoln = int.MaxValue;      // Iterate till K    for (int i = 1; i < k; i++)     {          // Check if n is divisible by i        if (n % i == 0)            minSoln = Math.Min(minSoln,                              (n / i) * k + i);    }      // Return the answer    return minSoln;}  // Driver Codepublic static void Main(String[] args){    int n = 4, k = 6;          Console.WriteLine(findMinSoln(n, k));}}  // This code is contributed by amal kumar choubey
Output:
10


Time Complexity: O(N)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up