Calcul de PPCM par récursion en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons écrire un programme C pour trouver le PPCM (Plus Petit Commun Multiple) de deux nombres en utilisant la récursion. Le PPCM est le plus petit entier positif qui est divisible par les deux nombres sans laisser de reste.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/operators -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/function_declaration -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/function_parameters -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/math_functions -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/recursion -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/create_files -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/user_input -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} c/output -.-> lab-123279{{"Calcul de PPCM par récursion en C"}} end

Comprendre le concept de PPCM

Avant de commencer la programmation, comprenons le concept de PPCM. Le PPCM de deux entiers est le plus petit entier positif qui est un multiple des deux nombres. Pour trouver le PPCM de deux nombres, nous pouvons utiliser la formule suivante :

PPCM = (nombre1 * nombre2) / PGCD

nombre1 et nombre2 sont les deux nombres pour lesquels nous devons trouver le PPCM et PGCD est le Plus Grand Commun Diviseur des deux nombres.

Créer un nouveau fichier C

Créons un nouveau fichier C nommé main.c dans le répertoire ~/projet/ où nous allons écrire notre programme.

Écrire le code

Copiez et collez le code suivant dans le fichier main.c.

#include<stdio.h>

int find_lcm(int, int); // déclaration de prototype de fonction

int main()
{
    int a, b, lcm;
    printf("Entrez deux entiers pour trouver le PPCM :\n");
    scanf("%d %d", &a, &b);
    lcm = find_lcm(a, b); // appel de fonction
    printf("Le PPCM de %d et %d est %d.\n", a, b, lcm);

    return 0;
}

int find_lcm(int a, int b) // définition de fonction
{
    static int temp = 1;
    if(temp % a == 0 && temp % b == 0)
        return temp;
    else
    {
        temp++;
        find_lcm(a, b);
        return temp;
    }
}

Compiler et exécuter le programme

Enregistrez le fichier main.c et compilez le programme à l'aide de la commande suivante dans le terminal :

gcc main.c -o main

Exécutez le programme à l'aide de la commande suivante :

./main

Entrez deux entiers lorsque vous y êtes invité et le programme affichera le PPCM des deux nombres.

Comprendre le code

Comprenons le code que nous venons d'écrire.

  • Nous incluons d'abord la bibliothèque d'entrée/sortie standard dans notre programme en utilisant #include<stdio.h>.
  • Nous déclarons le prototype de la fonction find_lcm que nous définirons plus tard dans notre programme. Cela est nécessaire car nous appelons la fonction find_lcm dans notre fonction principale avant sa définition réelle.
  • Dans la fonction principale, nous déclarons trois variables entières a, b et lcm.
  • Nous invitons l'utilisateur à entrer deux entiers en utilisant printf et acceptons l'entrée en utilisant scanf.
  • Nous appelons ensuite la fonction find_lcm et passons a et b comme arguments.
  • La fonction find_lcm prend deux arguments entiers a et b et renvoie le PPCM des deux nombres en utilisant la récursion.
  • Nous initialisons une variable statique temp à 1, qui contiendra la valeur actuelle que nous vérifions pour un multiple.
  • Dans chaque récursion, nous vérifions si temp est un multiple de a et de b.
  • Si c'est un multiple, nous renvoyons temp comme PPCM.
  • Si ce n'est pas un multiple, nous incrémentons temp et appelons la fonction find_lcm de manière récursive jusqu'à ce que nous trouvions le PPCM.

Tester le programme

Testez le programme avec différentes valeurs d'entrée et vérifiez qu'il produit la sortie correcte pour le PPCM.

Code complet

Voici le code complet du programme C pour trouver le PPCM de deux nombres en utilisant la récursion :

#include<stdio.h>

int find_lcm(int, int); // déclaration de prototype de fonction

int main()
{
    int a, b, lcm;
    printf("Entrez deux entiers pour trouver le PPCM :\n");
    scanf("%d %d", &a, &b);
    lcm = find_lcm(a, b); // appel de fonction
    printf("Le PPCM de %d et %d est %d.\n", a, b, lcm);

    return 0;
}

int find_lcm(int a, int b) // définition de fonction
{
    static int temp = 1;
    if(temp % a == 0 && temp % b == 0)
        return temp;
    else
    {
        temp++;
        find_lcm(a, b);
        return temp;
    }
}

Récapitulatif

Dans ce laboratoire, nous avons appris à écrire un programme C pour trouver le PPCM de deux nombres en utilisant la récursion. Nous avons utilisé une fonction récursive pour trouver le PPCM et avons expliqué chaque étape du programme en détail. Nous avons également appris à compiler et exécuter un programme C à l'aide du terminal.