Pregunta de práctica de codificación TCS | MCM de 2 Números

Dados dos números, la tarea es encontrar el MCM de dos números usando argumentos de línea de comando . MCM (Mínimo común múltiplo) de dos números es el número más pequeño que se puede dividir entre ambos números. Por ejemplo, MCM de 15 y 20 es 60 y MCM de 5 y 7 es 35. Ejemplos:

Input: n1 = 10, n2 = 15
Output: 30

Input: n1 = 5, n2 = 10
Output: 10

Acercarse:

  • Dado que los números se ingresan como argumentos de línea de comando , no hay necesidad de una línea de entrada dedicada
  • Extraiga los números de entrada del argumento de la línea de comando
  • Estos números extraídos estarán en tipo de string.
  • Convierta estos números en tipo entero y guárdelos en variables, digamos num1 y num2
  • Encuentra el MCM de los números. Una solución eficiente se basa en la siguiente fórmula para MCM de dos números ‘a’ y ‘b’.
   a x b = LCM(a, b) * GCD (a, b)

   LCM(a, b) = (a x b) / GCD(a, b) 
  • Para encontrar el GCD o HCF, una solución eficiente es utilizar el algoritmo euclidiano, que es el principal algoritmo utilizado para este propósito. La idea es que el MCD de dos números no cambia si se resta un número más pequeño de un número más grande.
  • Imprima o devuelva el LCM

Programa: 

C

// C program to compute the LCM of two numbers
// using command line arguments
 
#include <stdio.h>
#include <stdlib.h> /* atoi */
 
// Function to compute the GCD of two numbers
int GCD(int a, int b)
{
    if (b == 0)
        return a;
 
    return GCD(b, a % b);
}
 
// Function to find the LCM
int LCM(int a, int b)
{
    return (a * b) / GCD(a, b);
}
 
// Driver code
int main(int argc, char* argv[])
{
 
    int num1, num2;
 
    // Check if the length of args array is 1
    if (argc == 1)
        printf("No command line arguments found.\n");
 
    else {
 
        // Get the command line argument and
        // Convert it from string type to integer type
        // using function "atoi( argument)"
        num1 = atoi(argv[1]);
        num2 = atoi(argv[2]);
 
        // Find the LCM and print it
        printf("%d\n", LCM(num1, num2));
    }
    return 0;
}

Java

// Java program to compute the LCM of two numbers
// using command line arguments
 
class GFG {
 
    // Function to compute the GCD of two numbers
    static int GCD(int a, int b)
    {
        if (b == 0)
            return a;
 
        return GCD(b, a % b);
    }
 
    // Function to find the LCM
    static int LCM(int a, int b)
    {
        return (a * b) / GCD(a, b);
    }
 
    // Driver code
    public static void main(String[] args)
    {
 
        // Check if length of args array is
        // greater than 0
        if (args.length > 0) {
 
            // Get the command line argument and
            // Convert it from string type to integer type
            int num1 = Integer.parseInt(args[0]);
            int num2 = Integer.parseInt(args[1]);
 
            // Find the LCM
            int res = LCM(num1, num2);
 
            // Print the LCM
            System.out.println(res);
        }
        else
            System.out.println("No command line "
                               + "arguments found.");
    }
}

Producción:

  • Cía:
  • En Java:

Complejidad de tiempo: O (logN)

Espacio Auxiliar: O(logN)

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu 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 *