In questo esempio imparerai a calcolare l'MCL (Multiplo comune più basso) di due numeri inseriti dall'utente.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione in C:
- Operatori di programmazione C.
- C if … else Istruzione
- C while e do … while Loop
L'MCM di due numeri interi n1 e n2 è il più piccolo intero positivo perfettamente divisibile sia per n1 che per n2 (senza resto). Ad esempio, il LCM di 72 e 120 è 360.
LCM utilizzando while e if
#include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; )
Produzione
Immettere due numeri interi positivi: 72 120 L'MCM di 72 e 120 è 360.
In questo programma, gli interi inseriti dall'utente sono memorizzati rispettivamente nelle variabili n1 e n2.
Il numero più grande tra n1 e n2 viene memorizzato in max. Il LCM di due numeri non può essere inferiore a max.
L'espressione di prova di while
loop è sempre vera.
In ogni iterazione, viene verificato se max è perfettamente divisibile per n1 e n2.
if (min% n1 == 0 && max% n2 == 0) (…)
Se questa condizione di test non è vera, max viene incrementato di 1
e l'iterazione continua finché l'espressione di test dell'istruzione if
non è vera.
Il LCM di due numeri può anche essere trovato utilizzando la formula:
LCM = (num1 * num2) / GCD
Scopri come trovare il GCD di due numeri nella programmazione C.
Calcolo LCM utilizzando GCD
#include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; )
Produzione
Immettere due numeri interi positivi: 72 120 L'MCM di due numeri 72 e 120 è 360.