Linguaggio C: funzione M.C.D. - Studentville

Linguaggio C: funzione M.C.D.

esercizio svolto o teoria

A cura di: Administrator

  /*   *   * 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.   *   */  #include <stdio.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 è %dn",  	    n1, n2, gcd(n1, n2));  	return 0;  }  #ifndef EUCLALGO  int gcd(int n1, int n2)  {  	int min, mcd, i;  	if (n1 < n2)  		min = n1;  	else  		min = n2;  	i = mcd = 1;  	while (i <= min) {  		if (((n1 % i) == 0) && ((n2 % i) == 0))  			mcd = i;  		i++;  	}  	return mcd;  }  #else  int gcd(int n1, int n2)  {  	/* algoritmo di Euclide */  	int a, b, mcd = 1;  	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  
  • Programmazione

Ti potrebbe interessare

Link copiato negli appunti