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