Programma C per trovare GCD di due numeri

Esempi di modi diversi per calcolare GCD di due numeri interi (sia per numeri interi positivi che negativi) utilizzando cicli e istruzioni per il processo decisionale.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione in C:

  • Operatori di programmazione C.
  • C per Loop
  • C if … else Istruzione
  • C while e do … while Loop

L'HCF o GCD di due numeri interi è il numero intero più grande che può dividere esattamente entrambi i numeri (senza resto).

Ci sono molti modi per trovare il massimo comune divisore nella programmazione C.

Esempio # 1: GCD utilizzando il ciclo for e l'istruzione if

 #include int main() ( int n1, n2, i, gcd; printf("Enter two integers: "); scanf("%d %d", &n1, &n2); for(i=1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1%i==0 && n2%i==0) gcd = i; ) printf("G.C.D of %d and %d is %d", n1, n2, gcd); return 0; ) 

In questo programma, due numeri interi inseriti dall'utente vengono memorizzati nelle variabili n1 e n2, quindi il forciclo viene ripetuto fino a quando i è minore di n1 e n2.

In ogni iterazione, se sia n1 che n2 sono esattamente divisibili per i, il valore di i è assegnato a gcd.

Quando il forciclo è completato, il massimo comune divisore di due numeri viene memorizzato nella variabile mcd.

Esempio # 2: GCD utilizzando il ciclo while e l'istruzione if… else

 #include int main() ( int n1, n2; printf("Enter two positive integers: "); scanf("%d %d",&n1,&n2); while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Produzione

 Immettere due numeri interi positivi: 81 153 GCD = 9

Questo è un modo migliore per trovare il GCD. In questo metodo, il numero intero più piccolo viene sottratto dal numero intero più grande e il risultato viene assegnato alla variabile che contiene il numero intero più grande. Questo processo viene continuato fino a quando n1 e n2 sono uguali.

I due programmi precedenti funzionano come previsto solo se l'utente inserisce numeri interi positivi. Ecco una piccola modifica del secondo esempio per trovare il GCD per interi positivi e negativi.

Esempio # 3: GCD sia per i numeri positivi che per quelli negativi

 #include int main() ( int n1, n2; printf("Enter two integers: "); scanf("%d %d",&n1,&n2); // if user enters negative number, sign of the number is changed to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Produzione

 Immettere due numeri interi: 81-153 MCD = 9

Puoi anche usare la ricorsione per trovare il GCD.

Articoli interessanti...