Esercizio No.10

Esercizio No.10

Esercizio no.10:soluzione

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.

Versione C

#include <stdio.h>
main()
{
int a,b,c,t,m,mcm=0;
printf (“Inserisci il primo numero: “);
scanf(“%d”, &a);
printf (“Inserisci il secondo numero: “);
scanf(“%d”, &b);
printf (“Inserisci il terzo numero: “);
scanf(“%d”, &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);
}
printf(“\nIl Minimo Comune Multiplo (m.c.m.) tra %d, %d e %d vale: %d”,a,b,c,mcm);
}//fine main 

Commento all'articolo