#include <stdio.h>
void swap(unsigned int *a, unsigned *b){ // swap=scambia i valori tra due variabili
    unsigned int t = *a;// crea una variabile temporanea e memorizza il valore di a
    *a=*b; // prende il valore di b e lo scrive nella cella di memoria di a
    *b=t; // prende il vecchio valore di a (che avevamo salvato in t) e lo scrive nella cella puntata di b
}
unsigned int MDC(unsigned int m, unsigned int n){ // definisce la funzione principale che calcola l'MCD
    if(m==0 || n==0){ // controllo di sicurezza se uno dei due numeri è zero la funzione restituisce zero
        return 0;
    }
    while( m != n){ // un ciclo che ripete le operazioni finchè m e n sono diversi tra loro
        if (m<n){ // se m<n chiama la funzione swap passando gli indirizzi per invertire i loro valori, assicurandosi che m sia sempre più grande
            swap(&m,&n);
        }
        m = m-n; // sottrae il valore di n da m riducendo il numero maggiore 
    }
    return m; // quando il ciclo termina restituisce il valore finale trovato corrispondente all MDC
}
int main(void) {
unsigned int k= MDC(10,20); // dichiara una variabile k e le assegna il valore restituito dalla funzione MDC passando i numeri 10 e 20
printf("il valore di k è:%d\n",k);
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: