Concetti Chiave
- Il programma calcola il massimo comun divisore (MCD) di due numeri interi forniti dall'utente.
- Utilizza l'algoritmo di Euclide per determinare il MCD in modo efficiente.
- Il codice è strutturato in una funzione principale `main` e una funzione di calcolo `gcd`.
- La direttiva `#define EUCLALGO` attiva l'implementazione dell'algoritmo di Euclide per il calcolo del MCD.
- Il programma richiede all'utente di inserire due numeri interi e restituisce il loro MCD.
/* * * Il massimo comun divisore (MCD) di due interi è l'intero più grande che * possa dividere esattamente ognuno dei due numeri. Scrivete una funzione * gcd che restituisca il massimo comun divisore di due interi. * */ #includeAlgoritmo di Euclide per il MCD
h> #define EUCLALGO /* usa l'algoritmo di Euclide */ int gcd(int, int); int main(void) { int n1, n2; /* legge i due numeri interi */ printf("Inserire due numeri interi: "); scanf("%d%d", &n1, &n2); printf("Il massimo comun divisore di %d e %d è %d
", n1, n2, gcd(n1, n2)); return 0; } #ifndef EUCLALGO int gcd(int n1, int n2) { int min, mcd, i; if (n1 n2){ a = n1; b = n2; } else { a = n2; b = n1; } if ((a % b) == 0) mcd = b; else mcd = gcd (b, a % b); return mcd; } #endif
Domande da interrogazione
- Cos'è il massimo comun divisore (MCD) e come viene definito?
- Qual è l'algoritmo utilizzato nella funzione per calcolare il MCD?
- Come vengono letti i numeri interi nel programma?
Il massimo comun divisore (MCD) di due interi è l'intero più grande che può dividere esattamente entrambi i numeri.
La funzione utilizza l'algoritmo di Euclide per calcolare il massimo comun divisore, come indicato nel codice con la definizione `#define EUCLALGO`.
I numeri interi vengono letti tramite la funzione `scanf`, che richiede all'utente di inserire due numeri interi, come mostrato nel codice: `scanf("%d%d", &n1, &n2);`.