Programma C per trovare LCM di due numeri

Programma C per trovare LCM di due numeri

Scrivi un programma C per inserire due numeri dall'utente e trova LCM (Lowest Common Multiple) usando loop. Come trovare LCM di due numeri dati nella programmazione C. Logica per trovare LCM di due numeri nel programma C.

Esempio

Inserimento

Input number1: 12
Input number2: 30

Uscita

LCM =60

Conoscenze richieste

Programmazione C di base, Operatore condizionale, Se altro, Ciclo While, Ciclo while infinito

Cos'è LCM?

LCM è un numero intero positivo più piccolo che divide esattamente due o più numeri. Ad esempio

Logica per trovare LCM di due numeri

Logica descrittiva passo passo per trovare LCM di due numeri.

  1. Inserisci due numeri dall'utente. Memorizzateli in qualche variabile, ad esempio num1 e num2 .
  2. Trova il massimo tra due numeri. Memorizza il risultato in una variabile, ad esempio max . Massimo viene utilizzato per generare il multiplo successivo che deve essere comune a entrambi.
  3. Se massimo è esattamente divisibile per entrambi i numeri. Quindi hai la tua risposta, memorizza max a qualche variabile dire lcm = max . Se viene trovato LCM, terminare dal ciclo utilizzando la parola chiave break.
  4. Se massimo non è divisibile per entrambi i numeri. Quindi genera il multiplo successivo di max .
  5. Ripeti i passaggi da 2 a 3 fino a trovare LCM.

Programma per trovare LCM di due numeri

/**
 * C program to find LCM of any two numbers
 */

#include <stdio.h>

int main()
{
    int i, num1, num2, max, lcm=1;

    /* Input two numbers from user */
    printf("Enter any two numbers to find LCM: ");
    scanf("%d%d", &num1, &num2);

    /* Find maximum between num1 and num2 */
    max = (num1 > num2) ? num1 : num2;

    /* First multiple to be checked */
    i = max;
    
    /* Run loop indefinitely till LCM is found */
    while(1)
    {
        if(i%num1==0 && i%num2==0)
        {
            /*
             * If 'i' divides both 'num1' and 'num2'
             * then 'i' is the LCM.
             */
            lcm = i;

            /* Terminate the loop after LCM is found */
            break;
        }

        /*
         * If LCM is not found then generate next 
         * multiple of max between both numbers
         */
        i += max;
    }

    printf("LCM of %d and %d = %d", num1, num2, lcm);

    return 0;
}

Prendiamo nota del programma di cui sopra.

  • while(1) è un ciclo infinito che viene eseguito indefinitamente finché non viene trovato LCM.
  • Non confondere con l'istruzione max = (num1 > num2) ? num1 : num2; . Viene utilizzato per trovare il massimo tra due numeri.

Fai un passo avanti e impara a trovare LCM usando un approccio ricorsivo.

Uscita

Enter any two numbers to find LCM: 12
30
LCM of 12 and 30 = 60