01. Es. svolto: multiplo

Traccia:

Scrivere un programma che acquisisce da tastiera due numeri interi e verifica se il primo numero è un multiplo del secondo numero.

Strategia:

Analizziamo i seguenti esempi per verificare alcuni comportamenti:

    • Consideriamo i numeri 8 e 4 (il primo numero è un multiplo del secondo)

      • 8/4 (divisione intera) vale 2

      • Moltiplicando il quoziente 2 per il divisore 4 otteniamo: 2 * 4 = 8

      • Il risultato della moltiplicazione è 8 ed è uguale al dividendo

        • In sintesi: 8/4*4=8 (con "/" divisione intera)

    • Consideriamo i numeri 8 e 3 (il primo numero NON è un multiplo del secondo)

      • 8/3 (divisione intera) vale 2

      • Moltiplicando il quoziente 2 per il divisore 3 otteniamo: 2 * 3 = 6

      • Il risultato della moltiplicazione è 6 ed è diverso dal dividendo di partenza che vale 8

        • In sintesi: 8/3*3=6 (con "/" divisione intera)

Quindi per stabilire se il primo numero è multiplo del secondo possiamo sfruttare il procedimento sopra illustrato.

Nota:

Il linguaggio C prevede un operatore, il modulo, che semplifica ulteriormente la verifica ma non è utilizzato in questo esercizio perché non è stato ancora introdotto.

Soluzione:


#include <stdio.h>

int main()

{

int x1, x2;

printf("Inserire due numeri interi: ");

scanf("%d %d", &x1, &x2);

// Divisione intera: x1/x2*x2 == x1 solo se x1 e' un multiplo

if (x1/x2*x2 == x1) {

printf("%d e' un multiplo di %d\n", x1, x2);

}

else {

printf("%d NON e' un multiplo di %d\n", x1, x2);

}

return 0;

}