English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base en C

Contrôle du flux en C

Fonctions du langage C

Tableaux en langage C

Pointeurs en langage C

Chaînes de caractères en langage C

Structures C

Fichiers C

Autres C

Manuel de référence C

Programme C pour trouver le plus grand commun diviseur (GCD) de deux nombres

Recueil complet d'exemples de programmation C

Exemples de calcul du plus grand commun diviseur de deux entiers (entiers positifs et négatifs) en utilisant des boucles et des instructions de décision de différentes manières.

Pour comprendre cet exemple, vous devriez comprendre ce qui suitProgrammation en CThème :

Le HCF ou GCD (plus grand commun diviseur) des deux entiers peut être divisé précisément par deux nombres (sans reste).

Il y a plusieurs méthodes pour trouver le plus grand commun diviseur en programmation C.

Exemple1:最大公因数使用for循环和if语句

#include <stdio.h>
int main()
{
    int n1, n2, i, gcd;
    printf("Entrez deux entiers: ");
    scanf("%d %d", &n1, &n2);
    for(i=1; i <= n1 && i <= n2; ++i)
    {
        // Vérifiez si i est un diviseur commun des deux entiers
        if(n1%i==0 && n2%i==0)
            gcd= i;
    }
    printf("Le PGCD de %d et %d est %d", n1, n2, gcd);
    return 0;
}

Dans ce programme, les deux entiers saisis par l'utilisateur sont stockés dans la variable n1et n2dans. Ensuite, itérer for, jusqu'à ce que i soit inférieur à n1et n2.

Dans chaque itération, si n1et n2peuvent être divisés par i, alors on assigne la valeur de i à gcd.

Lorsque le cycle for est terminé, le plus grand commun diviseur des deux nombres est stocké dans la variable gcd.

Exemple2:最大公因数使用while循环和if ... else语句

#include <stdio.h>
int main()
{
    int n1, n2;
    
    printf("Entrez deux entiers positifs: ");
    scanf("%d %d",&n1&n2);
    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("Plus grand commun diviseur = %d", n1);
    return 0;
}

Résultat de la sortie

Entrez deux entiers positifs: 81
153
Plus grand commun diviseur = 9

C'est une meilleure méthode pour trouver le plus grand commun diviseur. Dans cette méthode, on soustrait le plus petit entier du plus grand, puis on affecte le résultat à la variable qui conserve le plus grand entier. Ce processus continue jusqu'à ce que n1et n2égal.

Seulement lorsque l'utilisateur saisit un entier positif, les deux programmes ci-dessus peuvent fonctionner comme prévu. Voici quelques modifications de ce deuxième exemple, qui peuvent trouver le plus grand commun diviseur de nombres entiers positifs et négatifs.

Exemple3:正负数均为最大公因数

#include <stdio.h>
int main()
{
    int n1, n2;
    printf("Entrez deux entiers: ");
    scanf("%d %d",&n1&n2);
    // Si l'utilisateur saisit un nombre négatif, le signe de ce nombre sera changé en positif
    n1 = ( n1 > 0) ? n1 : -n1;
    n2 = ( n2 > 0) ? n2 : -n2;
    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("Plus grand commun diviseur = %d", n1);
    return 0;
}

Résultat de la sortie

Entrez deux entiers : 81
-153
Plus grand commun diviseur = 9

Vous pouvez également utiliserRecherche du plus grand commun diviseur par récursion.

Recueil complet d'exemples de programmation C