 Open in App
Not now

# Find two distinct numbers such that their LCM lies in given range

• Difficulty Level : Basic
• Last Updated : 31 Jan, 2022

Given two numbers L and R, the task is to find two distinct minimum positive integers X and Y such that whose LCM lies in the range [L, R]. If there doesn’t exist any value of X and Y then print “-1”.

Examples:

Input: L = 3, R = 8
Output: x = 3, y=6
Explanation:
LCM of 3 and 6 is 6 which is in range 3, 8

Input: L = 88, R = 90
Output: -1
Explanation:
Minimum possible x and y are 88 and 176 respectively, but 176 is greater than 90.

Approach: The idea is to choose the value of X and Y in such a way that their LCM lies in the given range [L, R]. Below are the steps:

1. For the minimum value of X choose L as the minimum value as this is the minimum value in the given range.
2. Now for the value of Y choose 2*L as this is the minimum value of Y whose LCM is L.
3. Now if the above two values of X and Y lie in the range [L, R], then this is required pair of integers with minimum possible values of X and Y.
4. Otherwise, print “-1” as there doesn’t exist any other pair.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `// Function to find two distinct numbers` `// X and Y s.t. their LCM lies between` `// L and R  and X, Y are minimum possible` `void` `answer(``int` `L, ``int` `R)` `{`   `    ``// Check if 2*L lies in range L, R` `    ``if` `(2 * L <= R)`   `        ``// Print the answer` `        ``cout << L << ``", "` `             ``<< 2 * L << ``"\n"``;` `    ``else` `        ``cout << -1;` `}`   `// Driver Code` `int` `main()` `{` `    ``// Given value of ranges` `    ``int` `L = 3, R = 8;`   `    ``// Function call` `    ``answer(L, R);` `    ``return` `0;` `}`

## Java

 `// Java program for the above approach` `import` `java.io.*;`   `class` `GFG{`   `// Function to find two distinct numbers` `// X and Y s.t. their LCM lies between` `// L and R and X, Y are minimum possible` `static` `void` `answer(``int` `L, ``int` `R)` `{`   `    ``// Check if 2*L lies in range L, R` `    ``if` `(``2` `* L <= R)`   `        ``// Print the answer` `        ``System.out.println(L + ``", "` `+ (``2` `* L));` `    `  `    ``else` `        ``System.out.println(``"-1"``);` `}`   `// Driver Code` `public` `static` `void` `main(String[] args)` `{` `    `  `    ``// Given value of ranges` `    ``int` `L = ``3``, R = ``8``;`   `    ``// Function call` `    ``answer(L, R);` `}` `} `   `// This code is contributed by sanjoy_62`

## Python3

 `# Python3 program for the above approach`   `# Function to find two distinct numbers` `# X and Y s.t. their LCM lies between` `# L and R and X, Y are minimum possible` `def` `answer(L, R):`   `    ``# Check if 2*L lies in range L, R` `    ``if` `(``2` `*` `L <``=` `R):`   `        ``# Print the answer` `        ``print``(L, ``","``, ``2` `*` `L)`   `    ``else``:` `        ``print``(``-``1``)`   `# Driver Code`   `# Given value of ranges` `L ``=` `3` `R ``=` `8`   `# Function call` `answer(L, R)`   `# This code is contributed by sanjoy_62`

## C#

 `// C# program for the above approach` `using` `System;`   `class` `GFG{`   `// Function to find two distinct numbers` `// X and Y s.t. their LCM lies between` `// L and R and X, Y are minimum possible` `static` `void` `answer(``int` `L, ``int` `R)` `{`   `    ``// Check if 2*L lies in range L, R` `    ``if` `(2 * L <= R)` `    `  `        ``// Print the answer` `        ``Console.WriteLine(L + ``", "` `+ (2 * L));` `    `  `    ``else` `        ``Console.WriteLine(``"-1"``);` `}`   `// Driver Code` `public` `static` `void` `Main()` `{` `    `  `    ``// Given value of ranges` `    ``int` `L = 3, R = 8;`   `    ``// Function call` `    ``answer(L, R);` `}` `}`   `// This code is contributed by sanjoy_62`

## Javascript

 ``

Output:

`3, 6`

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

My Personal Notes arrow_drop_up
Related Articles