Laboratorio di calcolo I
Prova pratica del 16/6/2009


Scrivere un programma che data un coppia di numeri interi positivi, A e B, ne determini il massimo comune divisore.

Si suggerisce di implementare nel main solo
    la lettura di A e B (ed il controllo che siano >=0)
    la chiamata ad una funzione apposita
    la stampa del risultato
e di implementare una funzione (prototipo int max_com_den(int A, int B);)
che restituisca il risultato.

Nella funzione max_com_den potete implementare l'algoritmo seguente (di Euclide) o un altro di vostra scelta.
L'algoritmo suggerito e' un algoritmo ricorsivo ovvero la funzione max_com_den richiama se' stessa: conterra' qualcosa del tipo
return max_com_den(......);
Partendo dalla coppia di interi (A,B) sostiuirla ripetutamente con la coppia (B%A,A) fino a quando il primo valore della coppia non si annulla. Quando cio' si verifica il secondo valore e' il massimo comune divisore.


Esempio

    A       B
1710      808
808      1710
94          808
56            94
38            56
18            38
 2             18
 0               2

il risultato e' 2 !

Suggerimenti:
scrivere un file .h con il prototipo della funzione
scrivere un file .cc contenente la funzione inizialmente vuota (con solo un return 1;)
scrivere un file .cc contenente il programma main
nel main leggere i due valori di A e B, controllarli, chiamare la funzione, stampare il risultato.
solo quando questa parte compila e gira (stampando solo 1) dedicatevi allo sviluppo dell'algoritmo da inserire nella funzione.