Programme C pour trouver GCD de deux nombres

Exemples sur différentes manières de calculer le GCD de deux entiers (pour les entiers positifs et négatifs) en utilisant des boucles et des déclarations de prise de décision.

Pour comprendre cet exemple, vous devez avoir la connaissance des sujets de programmation C suivants:

  • Opérateurs de programmation C
  • C pour boucle
  • C if… else Déclaration
  • C while and do… while Loop

Le HCF ou GCD de deux entiers est le plus grand entier qui peut diviser exactement les deux nombres (sans reste).

Il existe de nombreuses façons de trouver le plus grand diviseur commun dans la programmation C.

Exemple # 1: GCD utilisant la boucle for et l'instruction 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; ) 

Dans ce programme, deux entiers entrés par l'utilisateur sont stockés dans les variables n1 et n2.Ensuite, la forboucle est itérée jusqu'à ce que i soit inférieur à n1 et n2.

Dans chaque itération, si n1 et n2 sont tous deux exactement divisibles par i, la valeur de i est affectée à pgcd.

Lorsque la forboucle est terminée, le plus grand diviseur commun de deux nombres est stocké dans la variable gcd.

Exemple # 2: GCD Utilisation de la boucle while et de l'instruction 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; )

Production

 Entrez deux nombres entiers positifs: 81 153 GCD = 9

C'est une meilleure façon de trouver le GCD. Dans cette méthode, le plus petit entier est soustrait du plus grand entier et le résultat est attribué à la variable contenant un entier plus grand. Ce processus se poursuit jusqu'à ce que n1 et n2 soient égaux.

Les deux programmes ci-dessus fonctionnent comme prévu uniquement si l'utilisateur entre des entiers positifs. Voici une petite modification du deuxième exemple pour trouver le GCD pour les entiers positifs et négatifs.

Exemple # 3: GCD pour les nombres positifs et négatifs

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

Production

 Entrez deux nombres entiers: 81-153 GCD = 9

Vous pouvez également utiliser la récursivité pour trouver le GCD.

Articles intéressants...