Encuentre dos números distintos tales que su MCM se encuentre en un rango dado

Dados dos números L y R , la tarea es encontrar dos enteros positivos mínimos distintos X e Y tales que cuyo MCM esté en el rango [L, R] . Si no existe ningún valor de X e Y, imprima «-1» .

Ejemplos:

Entrada: L = 3, R = 8 
Salida: x = 3, y=6
Explicación:
MCM de 3 y 6 es 6 que está en el rango 3, 8

Entrada: L = 88, R = 90
Salida: -1
Explicación:
Los mínimos x e y posibles son 88 y 176 respectivamente, pero 176 es mayor que 90.    

Enfoque: La idea es elegir el valor de X e Y de tal manera que su MCM se encuentre en el rango dado [L, R] . A continuación se muestran los pasos:

  1. Para el valor mínimo de X , elija L como el valor mínimo, ya que este es el valor mínimo en el rango dado.
  2. Ahora, para el valor de Y , elija 2*L ya que este es el valor mínimo de Y cuyo MCM es L.
  3. Ahora, si los dos valores anteriores de X e Y se encuentran en el rango [L, R] , entonces se requiere un par de números enteros con los valores mínimos posibles de X e Y.
  4. De lo contrario, imprima “-1” ya que no existe ningún otro par.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
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

<script>
// JavaScript 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
function answer(L, R)
{
 
    // Check if 2*L lies in range L, R
    if (2 * L <= R)
 
        // Print the answer
        document.write(L + ", "
            + 2 * L + "<br>");
    else
        document.write(-1);
}
 
// Driver Code
 
    // Given value of ranges
    let L = 3, R = 8;
 
    // Function call
    answer(L, R);
 
// This code is contributed by Manoj.
</script>
Producción: 

3, 6

 

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por aniket173000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *