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, 8Entrada: 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:
- 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.
- Ahora, para el valor de Y , elija 2*L ya que este es el valor mínimo de Y cuyo MCM es L.
- 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.
- 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>
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