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