edutecnica

Esercizio 10       

Calcola il minimo comune multiplo (mcm) di tre numeri inseriti da tastiera, ricordando che l'mcm è monomio di grado minimo divisibile per ciascuno dei monomi dati, ad es. mcm(6,4,2)=12.


Oltre ai tre numeri interi inseriti A,B,C è necessaria una variabile ausiliaria di appoggio T, mentre la variabile M identifica il massimo fra i tre numeri A,B e C.
Dopo aver determinato il massimo fra i tre numeri A,B,C e averlo memorizzato nella variabile M si valuta tramite un if se M è divisibile sia per A che per B che per C.
Se ciò si verifica M diventa l'mcm che verrà poi stampato, se questo non si verifica deve essere eseguito un ciclo do.
Prima dell'ingresso nel ciclo la variabile ausiliaria T viene posta uguale a M; ad ogni iterazione T viene incrementata di M poi si valuta se T è un multiplo simultaneamente di A,B e C se ciò si verifica T è l'mcm, il programma esce dal ciclo e stampa l'mcm; altrimenti il ciclo deve continuare fin tanto che questa eventualità non si verifica.

#include<iostream>
using namespace std;
main(){
int A,B,C,T,M,mcm=0;
cout << "A:";cin >> A;
cout << "B:";cin >> B;
cout << "C:";cin >> C;
//calcolo il max
if(A>B)M=A;
else M=B;
if(C>M)M=C;
if(!(M%A) && !(M%B) && !(M%C))mcm=M;
else{ T=M;
do{
     T+=M;
     if(!(T%A) && !(T%B) && !(T%C))mcm=T;
}while(mcm!=T);
}//end if
cout << mcm;
}//fine main