Programa C para encontrar GCD de dos números

Ejemplos sobre diferentes formas de calcular el MCD de dos enteros (tanto para enteros positivos como negativos) usando bucles y declaraciones de toma de decisiones.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación en C:

  • Operadores de programación C
  • C para bucle
  • C if … else Statement
  • C while y do… while Loop

El HCF o GCD de dos enteros es el entero más grande que puede dividir exactamente ambos números (sin un resto).

Hay muchas formas de encontrar el máximo común divisor en la programación en C.

Ejemplo n. ° 1: GCD con bucle for y declaración 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; ) 

En este programa, dos números enteros ingresados ​​por el usuario se almacenan en la variable n1 y n2. Luego, el forciclo se itera hasta que i es menor que n1 y n2.

En cada iteración, si tanto n1 como n2 son exactamente divisibles por i, el valor de i se asigna a mcd.

Cuando forse completa el ciclo, el máximo común divisor de dos números se almacena en la variable gcd.

Ejemplo n. ° 2: GCD con bucle while y declaración 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; )

Salida

 Ingrese dos números enteros positivos: 81153 MCD = 9

Esta es una mejor forma de encontrar el GCD. En este método, el número entero más pequeño se resta del número entero más grande y el resultado se asigna a la variable que contiene un número entero más grande. Este proceso continúa hasta que n1 y n2 son iguales.

Los dos programas anteriores funcionan según lo previsto solo si el usuario ingresa números enteros positivos. Aquí hay una pequeña modificación del segundo ejemplo para encontrar el MCD tanto para enteros positivos como negativos.

Ejemplo n. ° 3: MCD para números positivos y negativos

 #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; )

Salida

 Ingrese dos números enteros: 81-153 MCD = 9

También puede utilizar la recursividad para encontrar el GCD.

Articulos interesantes...