Trouver le nombre d'Armstrong en C

CBeginner
Pratiquer maintenant

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.

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;
}

Tout mettre 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;
}

Résumé

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.