Trouver le nombre d'Armstrong 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 apprendre à connaître le nombre d'Armstrong et écrire un programme en C pour vérifier si un nombre est un nombre d'Armstrong ou non. Un nombre d'Armstrong est un nombre qui est égal à la somme de ses propres chiffres chacun élevé à la puissance du nombre de chiffres.

Par exemple,

153 est un nombre d'Armstrong, car 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27.
371 est un nombre d'Armstrong, car 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") subgraph Lab Skills c/if_else -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} c/for_loop -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} c/while_loop -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} c/math_functions -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} c/create_files -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} c/user_input -.-> lab-123200{{"Trouver le nombre d'Armstrong en C"}} end

Créer un nouveau fichier C

Tout d'abord, nous devons créer un nouveau fichier C dans le répertoire ~/projet/, appelons-le main.c.

touch ~/projet/main.c

Trouver les nombres d'Armstrong entre 1 et 500

Écrivons un programme C pour trouver les nombres d'Armstrong entre 1 et 500.

#include <stdio.h>
#include <math.h>

int main() {
    printf("\nLes nombres d'Armstrong entre 1 et 500 sont : \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    return 0;
}

Vérifier si un nombre est un nombre d'Armstrong

Maintenant, écrivons un programme C pour vérifier si un nombre est un nombre d'Armstrong ou non.

#include <stdio.h>
#include <math.h>

int main() {
    int n, sum = 0;
    printf("Entrez un nombre : ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d est un nombre d'Armstrong.\n", n);
    } else {
        printf("%d n'est pas un nombre d'Armstrong.\n", n);
    }

    return 0;
}

Mettre tout ça ensemble

Mettons les deux programmes ensemble dans notre fichier main.c.

#include <stdio.h>
#include <math.h>

int main() {
    // Nombres d'Armstrong entre 1 et 500
    printf("Les nombres d'Armstrong entre 1 et 500 sont : \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    printf("\n");

    // Vérifier si un nombre est un nombre d'Armstrong
    int n, sum = 0;
    printf("Entrez un nombre : ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d est un nombre d'Armstrong.\n", n);
    } else {
        printf("%d n'est pas un nombre d'Armstrong.\n", n);
    }

    return 0;
}

Sommaire

Dans ce laboratoire, nous avons appris ce qu'est un nombre d'Armstrong et comment le trouver dans une plage donnée, ainsi que comment vérifier si un nombre est un nombre d'Armstrong ou non. Nous espérons que vous avez apprécié ce laboratoire et qu'il vous a aidé à mieux comprendre la programmation en C.